]> git.kaiwu.me - nginx.git/commit
Thread pools: memory barriers in task completion notifications.
authorMaxim Dounin <mdounin@mdounin.ru>
Tue, 19 Apr 2016 14:18:28 +0000 (17:18 +0300)
committerMaxim Dounin <mdounin@mdounin.ru>
Tue, 19 Apr 2016 14:18:28 +0000 (17:18 +0300)
commiteeb72127cf4b86cb57f53e1f4702bbd1edd1a04a
treede1673636b459bd5f057c4c90a25ff1ebaceb24b
parenteb38cbda2fcf318b9e1f2e463705658c286ec04e
Thread pools: memory barriers in task completion notifications.

The ngx_thread_pool_done object isn't volatile, and at least some
compilers assume that it is permitted to reorder modifications of
volatile and non-volatile objects.  Added appropriate ngx_memory_barrier()
calls to make sure all modifications will happen before the lock is released.

Reported by Mindaugas Rasiukevicius,
http://mailman.nginx.org/pipermail/nginx-devel/2016-April/008160.html.
src/core/ngx_thread_pool.c