From 1a2307aff638a344983536a04f7d2bf29b2afc92 Mon Sep 17 00:00:00 2001 From: Juan Batiz-Benet Date: Sat, 31 Jan 2015 17:08:47 -0800 Subject: [PATCH] blockservice/worker: fix proc/limiter sync see: https://gist.github.com/jbenet/6b8b45bde9d9fce17d57 I want to make the goprocess API nicer so it doesnt lead users into this problem. any ideas? --- blockservice/worker/worker.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/blockservice/worker/worker.go b/blockservice/worker/worker.go index be46c45c8a7..eb5b1fc17ed 100644 --- a/blockservice/worker/worker.go +++ b/blockservice/worker/worker.go @@ -120,7 +120,8 @@ func (w *Worker) start(c Config) { // reads from |workerChan| until process closes w.process.Go(func(proc process.Process) { ctx := childContext(proc) // shut down in-progress HasBlock when time to die - limiter := ratelimit.NewRateLimiter(proc, c.NumWorkers) + limiter := ratelimit.NewRateLimiter(process.Background(), c.NumWorkers) + defer limiter.Close() for { select { case <-proc.Closing():