diff options
author | Igor Sysoev <igor@sysoev.ru> | 2010-10-12 12:06:52 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2010-10-12 12:06:52 +0000 |
commit | 89eae52df8c110525ce08e4b2bbb65f79b8bc9f2 (patch) | |
tree | edee33e991d1e994b93f2d26f6f1d18c94c2d953 | |
parent | 7087d5d72ae14bdabf56a956e20ea440b85e2d90 (diff) | |
download | nginx-89eae52df8c110525ce08e4b2bbb65f79b8bc9f2.tar.gz |
file AIO read may be posted inside loop
-rw-r--r-- | src/core/ngx_output_chain.c | 12 | ||||
-rw-r--r-- | src/http/ngx_http_copy_filter_module.c | 1 |
2 files changed, 7 insertions, 6 deletions
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; } |