diff options
author | Jille Timmermans <jille@quis.cx> | 2023-12-02 18:04:12 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-02 18:04:12 +0100 |
commit | 9b4e42affab59855632cdd7b1dcacca8a0ce83dd (patch) | |
tree | ce7dd1517865e679c8a8e0f99520b2950696eea0 | |
parent | add support for custom dial function with timeouts (#1669) (diff) | |
download | fasthttp-9b4e42affab59855632cdd7b1dcacca8a0ce83dd.tar.gz fasthttp-9b4e42affab59855632cdd7b1dcacca8a0ce83dd.tar.bz2 fasthttp-9b4e42affab59855632cdd7b1dcacca8a0ce83dd.zip |
bug: Flush the write buffer before putting it to the pool (#1672)
A few lines later we check if `s.ReduceMemoryUsage && hijackHandler == nil`
and call releaseWriter. We need to flush the buffer before returning it
to the pool to avoid the data getting lost.
-rw-r--r-- | server.go | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -2415,7 +2415,7 @@ func (s *Server) serveConn(c net.Conn) (err error) { // This benchmark will send 16 pipelined requests. It is faster to pack as many responses // in a TCP packet and send it back at once than waiting for a flush every request. // In real world circumstances this behaviour could be argued as being wrong. - if br == nil || br.Buffered() == 0 || connectionClose { + if br == nil || br.Buffered() == 0 || connectionClose || (s.ReduceMemoryUsage && hijackHandler == nil) { err = bw.Flush() if err != nil { break |