コード例 #1
0
ファイル: store.go プロジェクト: cagnosolutions/safemap
func (sms *SafeMapStore) Set(key, fld string, val interface{}) bool {
	sm, ok := sms.GetSafeMap(key)
	if !ok {
		sms.Lock()
		sms.SafeMaps[key] = safemap.NewSafeMap(safemap.SHARD_COUNT)
		sm = sms.SafeMaps[key]
		sms.Unlock()
	}
	return sm.Set(fld, val)
}
コード例 #2
0
ファイル: store.go プロジェクト: cagnosolutions/safemap
func (sms *SafeMapStore) AddStore(key string) bool {
	if _, ok := sms.GetSafeMap(key); !ok {
		sms.Lock()
		sms.SafeMaps[key] = safemap.NewSafeMap(safemap.SHARD_COUNT)
		sms.Unlock()
	}
	sms.RLock()
	_, ok := sms.SafeMaps[key]
	sms.RUnlock()
	return ok
}
コード例 #3
0
ファイル: main.go プロジェクト: cagnosolutions/safemap
func main() {

	sm := safemap.NewSafeMap(32)

	fmt.Printf("Adding %d elements to map...\n", COUNT)

	t1 := ms()

	for i := 0; i < COUNT; i++ {
		key := fmt.Sprintf("key-%d", i)
		val := fmt.Sprintf("val-%d", i)
		sm.Set(key, []byte(val))
	}

	fmt.Printf("Took %dms\n", ms()-t1)

	bufio.NewReader(os.Stdin).ReadBytes('\n')
}