From b873420b35bb1de964a51f8e4bcd820dae1cf9d9 Mon Sep 17 00:00:00 2001 From: Robin Hahling Date: Wed, 3 Feb 2021 13:49:48 +0100 Subject: [PATCH] wait the for "run" routine to return on Close Signed-off-by: Robin Hahling --- workerpool.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/workerpool.go b/workerpool.go index e7fe85c..40268f2 100644 --- a/workerpool.go +++ b/workerpool.go @@ -70,6 +70,7 @@ func (wp *WorkerPool) run() { <-wp.workers }() } + close(wp.workers) } // Submit submits f for processing by a worker. The given id is useful for @@ -153,5 +154,8 @@ func (wp *WorkerPool) Close() error { // At this point, all routines have returned. This means that Submit is not // pending to write to the task channel and it is thus safe to close it. close(wp.tasks) + + // wait for the "run" routine + <-wp.workers return nil }