aboutsummaryrefslogtreecommitdiff
path: root/workerpool.go
diff options
context:
space:
mode:
authorGravatar Aliaksandr Valialkin <valyala@gmail.com> 2016-07-18 17:23:38 +0300
committerGravatar Aliaksandr Valialkin <valyala@gmail.com> 2016-07-18 17:23:38 +0300
commita2cc660e59b8d3fb8bf479e89b0c4c4a33d6debb (patch)
tree57a8db0a560ab7ac4640c83d475bbfc18e6a25e7 /workerpool.go
parentAdded support for multiple concurrent connections to server in PipelineClient (diff)
downloadfasthttp-a2cc660e59b8d3fb8bf479e89b0c4c4a33d6debb.tar.gz
fasthttp-a2cc660e59b8d3fb8bf479e89b0c4c4a33d6debb.tar.bz2
fasthttp-a2cc660e59b8d3fb8bf479e89b0c4c4a33d6debb.zip
optimization: removed slow defer from worker pool handler and hijack handler
Diffstat (limited to 'workerpool.go')
-rw-r--r--workerpool.go10
1 files changed, 4 insertions, 6 deletions
diff --git a/workerpool.go b/workerpool.go
index 04245ff..081ac65 100644
--- a/workerpool.go
+++ b/workerpool.go
@@ -201,12 +201,6 @@ func (wp *workerPool) release(ch *workerChan) bool {
func (wp *workerPool) workerFunc(ch *workerChan) {
var c net.Conn
- defer func() {
- wp.lock.Lock()
- wp.workersCount--
- wp.lock.Unlock()
- }()
-
var err error
for c = range ch.ch {
if c == nil {
@@ -230,4 +224,8 @@ func (wp *workerPool) workerFunc(ch *workerChan) {
break
}
}
+
+ wp.lock.Lock()
+ wp.workersCount--
+ wp.lock.Unlock()
}