diff options
author | Aliaksandr Valialkin <valyala@gmail.com> | 2016-03-30 18:45:57 +0300 |
---|---|---|
committer | Aliaksandr Valialkin <valyala@gmail.com> | 2016-03-30 18:45:57 +0300 |
commit | 1d6b6a66084a473d74b39db4fb81e6b46ec8059d (patch) | |
tree | 94ecd99c9c296e7153007a56aad9aa65eb998e6a /workerpool.go | |
parent | workerpool: clean workerChan slices in order to reduce the amount of work for GC (diff) | |
download | fasthttp-1d6b6a66084a473d74b39db4fb81e6b46ec8059d.tar.gz fasthttp-1d6b6a66084a473d74b39db4fb81e6b46ec8059d.tar.bz2 fasthttp-1d6b6a66084a473d74b39db4fb81e6b46ec8059d.zip |
workerpool: properly count workers
Diffstat (limited to 'workerpool.go')
-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 { |