From b12cc09f64a67848ab930928cb253e16232b703a Mon Sep 17 00:00:00 2001 From: Jeromy <jeromyj@gmail.com> Date: Fri, 12 Jun 2015 11:32:06 -0700 Subject: [PATCH] select with context when sending on channels License: MIT Signed-off-by: Jeromy <jeromyj@gmail.com> --- exchange/bitswap/wantmanager.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/exchange/bitswap/wantmanager.go b/exchange/bitswap/wantmanager.go index 0091724ff..09b3e328a 100644 --- a/exchange/bitswap/wantmanager.go +++ b/exchange/bitswap/wantmanager.go @@ -168,11 +168,17 @@ func (mq *msgQueue) runQueue(ctx context.Context) { } func (pm *WantManager) Connected(p peer.ID) { - pm.connect <- p + select { + case pm.connect <- p: + case <-pm.ctx.Done(): + } } func (pm *WantManager) Disconnected(p peer.ID) { - pm.disconnect <- p + select { + case pm.disconnect <- p: + case <-pm.ctx.Done(): + } } // TODO: use goprocess here once i trust it