aboutsummaryrefslogtreecommitdiff
path: root/workerpool.go
diff options
context:
space:
mode:
authorGravatar Aliaksandr Valialkin <valyala@gmail.com> 2015-11-23 19:41:43 +0200
committerGravatar Aliaksandr Valialkin <valyala@gmail.com> 2015-11-23 19:41:43 +0200
commit146145240d9850b4f1a17069eada06ebc3bc1f1d (patch)
treeb72729e9d887565339c304b2ab6f5d6989b8553c /workerpool.go
parentAdded a tip for writing tests and benchmarks for hot paths (diff)
downloadfasthttp-146145240d9850b4f1a17069eada06ebc3bc1f1d.tar.gz
fasthttp-146145240d9850b4f1a17069eada06ebc3bc1f1d.tar.bz2
fasthttp-146145240d9850b4f1a17069eada06ebc3bc1f1d.zip
Added RequestCtx.Hijack() for connections' hijacking
Diffstat (limited to 'workerpool.go')
-rw-r--r--workerpool.go6
1 files changed, 4 insertions, 2 deletions
diff --git a/workerpool.go b/workerpool.go
index 0fc44fb..a650eb6 100644
--- a/workerpool.go
+++ b/workerpool.go
@@ -162,13 +162,15 @@ func (wp *workerPool) workerFunc(ch *workerChan) {
if c == nil {
break
}
- if err = wp.WorkerFunc(c); err != nil {
+ if err = wp.WorkerFunc(c); err != nil && err != errHijacked {
errStr := err.Error()
if !strings.Contains(errStr, "broken pipe") && !strings.Contains(errStr, "reset by peer") {
wp.Logger.Printf("error when serving connection %q<->%q: %s", c.LocalAddr(), c.RemoteAddr(), err)
}
}
- c.Close()
+ if err != errHijacked {
+ c.Close()
+ }
c = nil
if !wp.release(ch) {