summaryrefslogtreecommitdiffhomepage
path: root/src/core/ngx_output_chain.c
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2021-10-29 20:21:54 +0300
committerMaxim Dounin <mdounin@mdounin.ru>2021-10-29 20:21:54 +0300
commitb3b368184b1e3c82da6703e8d7367f38fdc98d1a (patch)
tree90b050a7621ba3a9595e96a8c5d6b29723752895 /src/core/ngx_output_chain.c
parent6b0d773fbd95675b64ceaa34aefd60ae92b2a96b (diff)
downloadnginx-b3b368184b1e3c82da6703e8d7367f38fdc98d1a.tar.gz
nginx-b3b368184b1e3c82da6703e8d7367f38fdc98d1a.tar.bz2
Upstream: sendfile_max_chunk support.
Previously, connections to upstream servers used sendfile() if it was enabled, but never honored sendfile_max_chunk. This might result in worker monopolization for a long time if large request bodies are allowed.
Diffstat (limited to 'src/core/ngx_output_chain.c')
-rw-r--r--src/core/ngx_output_chain.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/core/ngx_output_chain.c b/src/core/ngx_output_chain.c
index 5c3dbe872..fd4603b19 100644
--- a/src/core/ngx_output_chain.c
+++ b/src/core/ngx_output_chain.c
@@ -803,6 +803,10 @@ ngx_chain_writer(void *data, ngx_chain_t *in)
return NGX_ERROR;
}
+ if (chain && c->write->ready) {
+ ngx_post_event(c->write, &ngx_posted_next_events);
+ }
+
for (cl = ctx->out; cl && cl != chain; /* void */) {
ln = cl;
cl = cl->next;