Quellcode durchsuchen

Check the cache again after getting the lock

Ian Lozinski vor 9 Jahren
Ursprung
Commit
40b3fc319d
1 geänderte Dateien mit 3 neuen und 0 gelöschten Zeilen
  1. 3 0
      prepared_cache.go

+ 3 - 0
prepared_cache.go

@@ -57,6 +57,9 @@ func (p *preparedLRU) execIfMissing(key string, fn func(lru *lru.Cache) *infligh
 
 
 	p.mu.Lock()
 	p.mu.Lock()
 	defer p.mu.Unlock()
 	defer p.mu.Unlock()
+	if val, ok := p.lru.Get(key); ok {
+		return val.(*inflightPrepare), true
+	}
 	return fn(p.lru), false
 	return fn(p.lru), false
 }
 }