From: Igor Sysoev Date: Tue, 12 Oct 2010 12:06:52 +0000 (+0000) Subject: file AIO read may be posted inside loop X-Git-Tag: release-0.8.53~6 X-Git-Url: http://www.kaiwu.me/postgresql/commit/static/gitweb.js?a=commitdiff_plain;h=89eae52df8c110525ce08e4b2bbb65f79b8bc9f2;p=nginx.git file AIO read may be posted inside loop --- diff --git a/src/core/ngx_output_chain.c b/src/core/ngx_output_chain.c index f51d69000..4f100a818 100644 --- a/src/core/ngx_output_chain.c +++ b/src/core/ngx_output_chain.c @@ -74,18 +74,18 @@ ngx_output_chain(ngx_output_chain_ctx_t *ctx, ngx_chain_t *in) } } -#if (NGX_HAVE_FILE_AIO) - if (ctx->aio) { - return NGX_AGAIN; - } -#endif - out = NULL; last_out = &out; last = NGX_NONE; for ( ;; ) { +#if (NGX_HAVE_FILE_AIO) + if (ctx->aio) { + return NGX_AGAIN; + } +#endif + while (ctx->in) { /* diff --git a/src/http/ngx_http_copy_filter_module.c b/src/http/ngx_http_copy_filter_module.c index d492f321d..2dd4a627b 100644 --- a/src/http/ngx_http_copy_filter_module.c +++ b/src/http/ngx_http_copy_filter_module.c @@ -211,6 +211,7 @@ ngx_http_copy_aio_handler(ngx_output_chain_ctx_t *ctx, ngx_file_t *file) r->main->blocked++; r->aio = 1; + ctx->aio = 1; }