]> 127.0.0.1 Git - part/.git/commitdiff
map range bug fix v0.4.5
authorqydysky <qydysky@foxmail.com>
Sat, 20 Feb 2021 05:29:14 +0000 (13:29 +0800)
committerqydysky <qydysky@foxmail.com>
Sat, 20 Feb 2021 05:29:14 +0000 (13:29 +0800)
map/Map.go
map/Map_test.go

index 37d8f842a5ad9c7f9ecadf23b96134924d5aa00c..48c2f5bd18bcaf132d2e1df98841d4ee3dca4378 100644 (file)
@@ -82,6 +82,7 @@ func (t *Map) Range(f func(key, value interface{})(bool)) {
 
        t.lock.Unlock()
 
+       m,_ = t.readOnly.Load().(map[interface{}]*ptr)//reload
        for k,p := range m{
                v,ok := p.tryLoad()
                if !ok {continue} 
index ecdcb0a092e2dd7b8f7a25cc2f00b55b78a3b64f..73e52194fb575256face718af81aa33cd25734e8 100644 (file)
@@ -16,6 +16,7 @@ func Test_customMap(t *testing.T) {
        //range
        c.Store(1, 1)
        c.Range(func(key,value interface{})(bool){
+               t.Log(key, value)
                if key.(int) != value.(int) {t.Error(`3`)}
                return true
        })