From 85cd349af4cc365d1ea46a1222d90f67cf23bde1 Mon Sep 17 00:00:00 2001 From: Janos Guljas Date: Mon, 28 Jan 2019 11:09:14 +0100 Subject: [PATCH] swarm/storage/localstore: correct useGlobalLock in collectGarbage --- swarm/storage/localstore/gc.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/swarm/storage/localstore/gc.go b/swarm/storage/localstore/gc.go index cc7122c38a..a228c8493f 100644 --- a/swarm/storage/localstore/gc.go +++ b/swarm/storage/localstore/gc.go @@ -78,13 +78,15 @@ func (db *DB) collectGarbage() (collectedCount int64, done bool, err error) { batch := new(leveldb.Batch) target := db.gcTarget() + if db.useGlobalLock { + db.globalMu.Lock() + defer db.globalMu.Unlock() + } + done = true err = db.gcIndex.Iterate(func(item shed.Item) (stop bool, err error) { // protect parallel updates - if db.useGlobalLock { - db.globalMu.Lock() - defer db.globalMu.Unlock() - } else { + if !db.useGlobalLock { unlock, err := db.lockAddr(item.Address) if err != nil { return false, err