aboutsummaryrefslogtreecommitdiff
path: root/workerpool.go
diff options
context:
space:
mode:
authorGravatar Aliaksandr Valialkin <valyala@gmail.com> 2016-03-30 18:45:57 +0300
committerGravatar Aliaksandr Valialkin <valyala@gmail.com> 2016-03-30 18:45:57 +0300
commit1d6b6a66084a473d74b39db4fb81e6b46ec8059d (patch)
tree94ecd99c9c296e7153007a56aad9aa65eb998e6a /workerpool.go
parentworkerpool: clean workerChan slices in order to reduce the amount of work for GC (diff)
downloadfasthttp-1d6b6a66084a473d74b39db4fb81e6b46ec8059d.tar.gz
fasthttp-1d6b6a66084a473d74b39db4fb81e6b46ec8059d.tar.bz2
fasthttp-1d6b6a66084a473d74b39db4fb81e6b46ec8059d.zip
workerpool: properly count workers
Diffstat (limited to 'workerpool.go')
-rw-r--r--workerpool.go4
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 {