Fix a potential race between ExpireObjects() and Set() over items map

This commit is contained in:
Harshavardhana 2015-05-04 22:36:43 -07:00
parent 3fc9b4554f
commit 193a6606db

View File

@ -89,13 +89,14 @@ func (r *Intelligent) ExpireObjects(gcInterval time.Duration) {
r.gcInterval = gcInterval
go func() {
for range time.Tick(gcInterval) {
r.Lock()
for key := range r.items {
r.Lock()
if !r.isValid(key) {
r.Delete(key)
}
r.Unlock()
}
r.Unlock()
}
}()
}