Welcome! Log In Create A New Profile

Advanced

[PATCH] Output chain: propagate flush and last_buf flags to send_chain()

Piotr Sikora via nginx-devel
June 03, 2017 11:30PM
# HG changeset patch
# User Piotr Sikora <piotrsikora@google.com>
# Date 1491708381 25200
# Sat Apr 08 20:26:21 2017 -0700
# Node ID 2a48b9b6e67d91594c1787ebf721daebf5f88c91
# Parent 716852cce9136d977b81a2d1b8b6f9fbca0dce49
Output chain: propagate flush and last_buf flags to send_chain().

Signed-off-by: Piotr Sikora <piotrsikora@google.com>

diff -r 716852cce913 -r 2a48b9b6e67d src/core/ngx_output_chain.c
--- a/src/core/ngx_output_chain.c
+++ b/src/core/ngx_output_chain.c
@@ -658,6 +658,7 @@ ngx_chain_writer(void *data, ngx_chain_t
ngx_chain_writer_ctx_t *ctx = data;

off_t size;
+ ngx_uint_t flush;
ngx_chain_t *cl, *ln, *chain;
ngx_connection_t *c;

@@ -689,9 +690,10 @@ ngx_chain_writer(void *data, ngx_chain_t

size += ngx_buf_size(in->buf);

- ngx_log_debug2(NGX_LOG_DEBUG_CORE, c->log, 0,
- "chain writer buf fl:%d s:%uO",
- in->buf->flush, ngx_buf_size(in->buf));
+ ngx_log_debug3(NGX_LOG_DEBUG_CORE, c->log, 0,
+ "chain writer buf fl:%d l:%d s:%uO",
+ in->buf->flush, in->buf->last_buf,
+ ngx_buf_size(in->buf));

cl = ngx_alloc_chain_link(ctx->pool);
if (cl == NULL) {
@@ -707,6 +709,8 @@ ngx_chain_writer(void *data, ngx_chain_t
ngx_log_debug1(NGX_LOG_DEBUG_CORE, c->log, 0,
"chain writer in: %p", ctx->out);

+ flush = 0;
+
for (cl = ctx->out; cl; cl = cl->next) {

#if 1
@@ -732,9 +736,13 @@ ngx_chain_writer(void *data, ngx_chain_t
#endif

size += ngx_buf_size(cl->buf);
+
+ if (cl->buf->flush || cl->buf->last_buf) {
+ flush = 1;
+ }
}

- if (size == 0 && !c->buffered) {
+ if (size == 0 && !flush && !c->buffered) {
return NGX_OK;
}

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[PATCH] Output chain: propagate flush and last_buf flags to send_chain()

Piotr Sikora via nginx-devel 509 June 03, 2017 11:30PM

Re: [PATCH] Output chain: propagate flush and last_buf flags to send_chain()

Maxim Dounin 170 June 08, 2017 12:30PM

Re: [PATCH] Output chain: propagate flush and last_buf flags to send_chain()

Piotr Sikora via nginx-devel 172 June 17, 2017 05:00PM

[PATCH] Output chain: propagate last_buf flag to c->send_chain()

Piotr Sikora via nginx-devel 144 June 17, 2017 05:00PM

Re: [PATCH] Output chain: propagate last_buf flag to c->send_chain()

Maxim Dounin 224 June 20, 2017 11:58AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 316
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready