swarm/storage/localstore: correct useGlobalLock in collectGarbage

This commit is contained in:
Janos Guljas 2019-01-28 11:09:14 +01:00
parent 6accc6bc4b
commit 85cd349af4

View file

@ -78,13 +78,15 @@ func (db *DB) collectGarbage() (collectedCount int64, done bool, err error) {
batch := new(leveldb.Batch) batch := new(leveldb.Batch)
target := db.gcTarget() target := db.gcTarget()
done = true
err = db.gcIndex.Iterate(func(item shed.Item) (stop bool, err error) {
// protect parallel updates
if db.useGlobalLock { if db.useGlobalLock {
db.globalMu.Lock() db.globalMu.Lock()
defer db.globalMu.Unlock() defer db.globalMu.Unlock()
} else { }
done = true
err = db.gcIndex.Iterate(func(item shed.Item) (stop bool, err error) {
// protect parallel updates
if !db.useGlobalLock {
unlock, err := db.lockAddr(item.Address) unlock, err := db.lockAddr(item.Address)
if err != nil { if err != nil {
return false, err return false, err