@cryptotaxi247 / kubo / commits / 3f9c1263e

fix: data race in test

https://build.protocol-dev.com/job/race/9352/console @jbenet @whyrusleeping pinging you guys to spread awareness about the delay.D type for configurable delays License: MIT Signed-off-by: Brian Tiger Chow <brian@perfmode.com>

Brian Tiger Chow committed Dec 18, 2014 at 19:24 UTC 3f9c1263ec8069d2d1d273f7d8ceb55a64d32e55
2 files changed +6 -6
exchange/bitswap/bitswap.go
+4 -3
@@ -19,6 +19,7 @@ import (
19 wantlist "github.com/jbenet/go-ipfs/exchange/bitswap/wantlist"
20 peer "github.com/jbenet/go-ipfs/peer"
21 u "github.com/jbenet/go-ipfs/util"
22 + "github.com/jbenet/go-ipfs/util/delay"
23 eventlog "github.com/jbenet/go-ipfs/util/eventlog"
24 pset "github.com/jbenet/go-ipfs/util/peerset"
25 )
@@ -37,7 +38,7 @@ const (
38 )
39
40 var (
40 - rebroadcastDelay = time.Second * 10
41 + rebroadcastDelay = delay.Fixed(time.Second * 10)
42 )
43
44 // New initializes a BitSwap instance that communicates over the provided
@@ -250,7 +251,7 @@ func (bs *bitswap) clientWorker(parent context.Context) {
251
252 ctx, cancel := context.WithCancel(parent)
253
253 - broadcastSignal := time.After(rebroadcastDelay)
254 + broadcastSignal := time.After(rebroadcastDelay.Get())
255 defer cancel()
256
257 for {
@@ -258,7 +259,7 @@ func (bs *bitswap) clientWorker(parent context.Context) {
259 case <-broadcastSignal:
260 // Resend unfulfilled wantlist keys
261 bs.sendWantlistToProviders(ctx, bs.wantlist)
261 - broadcastSignal = time.After(rebroadcastDelay)
262 + broadcastSignal = time.After(rebroadcastDelay.Get())
263 case ks := <-bs.batchRequests:
264 if len(ks) == 0 {
265 log.Warning("Received batch request for zero blocks")
exchange/bitswap/bitswap_test.go
+2 -3
@@ -208,9 +208,8 @@ func TestSendToWantingPeer(t *testing.T) {
208 defer sg.Close()
209 bg := blocksutil.NewBlockGenerator()
210
211 - oldVal := rebroadcastDelay
212 - rebroadcastDelay = time.Second / 2
213 - defer func() { rebroadcastDelay = oldVal }()
211 + prev := rebroadcastDelay.Set(time.Second / 2)
212 + defer func() { rebroadcastDelay.Set(prev) }()
213
214 peerA := sg.Next()
215 peerB := sg.Next()