aboutsummaryrefslogtreecommitdiff
path: root/workerpool.go
diff options
context:
space:
mode:
authorGravatar Aliaksandr Valialkin <valyala@gmail.com> 2016-03-31 12:37:46 +0300
committerGravatar Aliaksandr Valialkin <valyala@gmail.com> 2016-03-31 12:37:46 +0300
commit4fa2d5db396a0d1427daf30bb596bedab414d891 (patch)
treeba5d05b3eadd658a9ebed455bc46c9e791240956 /workerpool.go
parentworkerpool: removed a hack for recycling worker stacks, since Go runtime must... (diff)
downloadfasthttp-4fa2d5db396a0d1427daf30bb596bedab414d891.tar.gz
fasthttp-4fa2d5db396a0d1427daf30bb596bedab414d891.tar.bz2
fasthttp-4fa2d5db396a0d1427daf30bb596bedab414d891.zip
workerpool: bugfix: do not return workerChan to ready pool on panic
Diffstat (limited to 'workerpool.go')
-rw-r--r--workerpool.go7
1 files changed, 3 insertions, 4 deletions
diff --git a/workerpool.go b/workerpool.go
index ffaf59b..42ea62e 100644
--- a/workerpool.go
+++ b/workerpool.go
@@ -194,12 +194,11 @@ func (wp *workerPool) workerFunc(ch *workerChan) {
defer func() {
if r := recover(); r != nil {
wp.Logger.Printf("panic: %s\nStack trace:\n%s", r, debug.Stack())
+ if c != nil {
+ c.Close()
+ }
}
- if c != nil {
- c.Close()
- wp.release(ch)
- }
wp.lock.Lock()
wp.workersCount--
wp.lock.Unlock()