Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nginx/nginx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/ngx_output_chain.c')
-rw-r--r--src/core/ngx_output_chain.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/core/ngx_output_chain.c b/src/core/ngx_output_chain.c
index b8361dcd6..f7845787b 100644
--- a/src/core/ngx_output_chain.c
+++ b/src/core/ngx_output_chain.c
@@ -577,10 +577,15 @@ ngx_output_chain_copy_buf(ngx_output_chain_ctx_t *ctx)
} else
#endif
#if (NGX_THREADS)
- if (src->file->thread_handler) {
- n = ngx_thread_read(&ctx->thread_task, src->file, dst->pos,
- (size_t) size, src->file_pos, ctx->pool);
+ if (ctx->thread_handler) {
+ src->file->thread_task = ctx->thread_task;
+ src->file->thread_handler = ctx->thread_handler;
+ src->file->thread_ctx = ctx->filter_ctx;
+
+ n = ngx_thread_read(src->file, dst->pos, (size_t) size,
+ src->file_pos, ctx->pool);
if (n == NGX_AGAIN) {
+ ctx->thread_task = src->file->thread_task;
return NGX_AGAIN;
}