diff options
-rw-r--r-- | workerpool.go | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/workerpool.go b/workerpool.go index 143af29..7cdecb3 100644 --- a/workerpool.go +++ b/workerpool.go @@ -95,7 +95,6 @@ func (wp *workerPool) clean(scratch *[]*workerChan) { i++ } if i > 0 { - wp.workersCount -= i *scratch = append((*scratch)[:0], ready[:i]...) m := copy(ready, ready[i:]) for i = m; i < n; i++ { @@ -202,6 +201,9 @@ func (wp *workerPool) workerFunc(ch *workerChan) { c.Close() wp.release(ch) } + wp.lock.Lock() + wp.workersCount-- + wp.lock.Unlock() }() for c = range ch.ch { |