From 51df7912c4a1320ead61cb57acdeaf16ffdcc289 Mon Sep 17 00:00:00 2001 From: Valentin Bartenev Date: Fri, 27 Mar 2015 21:19:20 +0300 Subject: [PATCH] Events: fixed possible crash on start or reload. The main thread could wake up and start processing the notify event before the handler was set. --- src/event/modules/ngx_epoll_module.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/event/modules/ngx_epoll_module.c b/src/event/modules/ngx_epoll_module.c index 5f7f67859..3458b209a 100644 --- a/src/event/modules/ngx_epoll_module.c +++ b/src/event/modules/ngx_epoll_module.c @@ -683,14 +683,14 @@ ngx_epoll_notify(ngx_event_handler_pt handler) { static uint64_t inc = 1; + notify_event.data = handler; + if ((size_t) write(notify_fd, &inc, sizeof(uint64_t)) != sizeof(uint64_t)) { ngx_log_error(NGX_LOG_ALERT, notify_event.log, ngx_errno, "write() to eventfd %d failed", notify_fd); return NGX_ERROR; } - notify_event.data = handler; - return NGX_OK; }