fix(bitswap): release the lock last
The area above the lock was getting big. Moving this up to avoid mistakes down the road.
Brian Tiger Chow committed
Jan 18, 2015 at 23:40 UTC
aa4c0d1b9043bdb62caedb6da36e1dbf05622f7c
1 file changed
+3
-3
exchange/bitswap/decision/engine.go
+3
-3
@@ -160,6 +160,9 @@ func (e *Engine) Peers() []peer.ID {
160
// MessageReceived performs book-keeping. Returns error if passed invalid
161
// arguments.
162
func (e *Engine) MessageReceived(p peer.ID, m bsmsg.BitSwapMessage) error {
163
+ e.lock.Lock()
164
+ defer e.lock.Unlock()
165
+
166
log := log.Prefix("bitswap.Engine.MessageReceived(%s)", p)
167
log.Debugf("enter. %d entries %d blocks", len(m.Wantlist()), len(m.Blocks()))
168
defer log.Debugf("exit")
@@ -175,9 +178,6 @@ func (e *Engine) MessageReceived(p peer.ID, m bsmsg.BitSwapMessage) error {
178
}
179
}()
180
178
- e.lock.Lock()
179
- defer e.lock.Unlock()
180
-
181
l := e.findOrCreate(p)
182
if m.Full() {
183
l.wantList = wl.New()