fix: respect ctx on receive
@jbenet License: MIT Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
Brian Tiger Chow committed
Dec 5, 2014 at 22:54 UTC
f7cb6b996339615df134c04c9cdd4902bfbaae7e
1 file changed
+6
-1
routing/dht/providers.go
+6
-1
@@ -107,10 +107,15 @@ func (pm *ProviderManager) GetProviders(ctx context.Context, k u.Key) []peer.Pee
107
resp: make(chan []peer.Peer, 1), // buffered to prevent sender from blocking
108
}
109
select {
110
+ case <-ctx.Done():
111
+ return nil
112
case pm.getprovs <- gp:
111
- return <-gp.resp
113
+ }
114
+ select {
115
case <-ctx.Done():
116
return nil
117
+ case peers := <-gp.resp:
118
+ return peers
119
}
120
}
121