@cryptotaxi247 / kubo / commits / cb2ed8925

bitswap: defer unlock when possible

License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>

Steven Allen committed Dec 5, 2017 at 09:09 UTC cb2ed89252bd4b15fdb71accbe6e968759168dff
1 file changed +4 -4
exchange/bitswap/decision/engine.go
+4 -4
@@ -298,15 +298,15 @@ func (e *Engine) MessageSent(p peer.ID, m bsmsg.BitSwapMessage) error {
298
299 func (e *Engine) PeerConnected(p peer.ID) {
300 e.lock.Lock()
301 + defer e.lock.Unlock()
302 l, ok := e.ledgerMap[p]
303 if !ok {
304 l = newLedger(p)
305 e.ledgerMap[p] = l
306 }
307 l.lk.Lock()
308 + defer l.lk.Unlock()
309 l.ref++
308 - l.lk.Unlock()
309 - e.lock.Unlock()
310 }
311
312 func (e *Engine) PeerDisconnected(p peer.ID) {
@@ -317,11 +317,11 @@ func (e *Engine) PeerDisconnected(p peer.ID) {
317 return
318 }
319 l.lk.Lock()
320 + defer l.lk.Unlock()
321 l.ref--
322 if l.ref <= 0 {
323 delete(e.ledgerMap, p)
324 }
324 - l.lk.Unlock()
325 }
326
327 func (e *Engine) numBytesSentTo(p peer.ID) uint64 {
@@ -337,12 +337,12 @@ func (e *Engine) numBytesReceivedFrom(p peer.ID) uint64 {
337 // ledger lazily instantiates a ledger
338 func (e *Engine) findOrCreate(p peer.ID) *ledger {
339 e.lock.Lock()
340 + defer e.lock.Unlock()
341 l, ok := e.ledgerMap[p]
342 if !ok {
343 l = newLedger(p)
344 e.ledgerMap[p] = l
345 }
345 - e.lock.Unlock()
346 return l
347 }
348