From f7cb6b996339615df134c04c9cdd4902bfbaae7e Mon Sep 17 00:00:00 2001 From: Brian Tiger Chow Date: Fri, 5 Dec 2014 22:54:16 -0800 Subject: [PATCH] fix: respect ctx on receive @jbenet License: MIT Signed-off-by: Brian Tiger Chow --- routing/dht/providers.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/routing/dht/providers.go b/routing/dht/providers.go index 7f70056d3..0deea6324 100644 --- a/routing/dht/providers.go +++ b/routing/dht/providers.go @@ -107,10 +107,15 @@ func (pm *ProviderManager) GetProviders(ctx context.Context, k u.Key) []peer.Pee resp: make(chan []peer.Peer, 1), // buffered to prevent sender from blocking } select { - case pm.getprovs <- gp: - return <-gp.resp case <-ctx.Done(): return nil + case pm.getprovs <- gp: + } + select { + case <-ctx.Done(): + return nil + case peers := <-gp.resp: + return peers } }