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