From 1e680c7a8b9fc264adb60b6dc11b65eb5dbdb312 Mon Sep 17 00:00:00 2001 From: John Date: Fri, 14 Jun 2019 10:44:56 +0800 Subject: [PATCH] fix issue in gcache --- g/os/gcache/gcache_mem_cache.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/g/os/gcache/gcache_mem_cache.go b/g/os/gcache/gcache_mem_cache.go index 3de2d5071..f46461898 100644 --- a/g/os/gcache/gcache_mem_cache.go +++ b/g/os/gcache/gcache_mem_cache.go @@ -91,8 +91,13 @@ func (c *memCache) getExpireSet(expire int64) (expireSet *gset.Set) { // It creates and returns a new set for if it does not exist. func (c *memCache) getOrNewExpireSet(expire int64) (expireSet *gset.Set) { if expireSet = c.getExpireSet(expire); expireSet == nil { - c.expireSetMu.Lock() - c.expireSets[expire] = gset.New() + expireSet = gset.New() + c.expireSetMu.Lock() + if es, ok := c.expireSets[expire]; ok { + expireSet = es + } else { + c.expireSets[expire] = expireSet + } c.expireSetMu.Unlock() } return