aboutsummaryrefslogtreecommitdiff
path: root/src/core/ngx_thread_pool.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/ngx_thread_pool.c')
-rw-r--r--src/core/ngx_thread_pool.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/core/ngx_thread_pool.c b/src/core/ngx_thread_pool.c
index 03530851a..f3655aa0b 100644
--- a/src/core/ngx_thread_pool.c
+++ b/src/core/ngx_thread_pool.c
@@ -345,6 +345,8 @@ ngx_thread_pool_cycle(void *data)
*ngx_thread_pool_done.last = task;
ngx_thread_pool_done.last = &task->next;
+ ngx_memory_barrier();
+
ngx_unlock(&ngx_thread_pool_done_lock);
(void) ngx_notify(ngx_thread_pool_handler);
@@ -366,6 +368,8 @@ ngx_thread_pool_handler(ngx_event_t *ev)
ngx_thread_pool_done.first = NULL;
ngx_thread_pool_done.last = &ngx_thread_pool_done.first;
+ ngx_memory_barrier();
+
ngx_unlock(&ngx_thread_pool_done_lock);
while (task) {