From: Valentin Bartenev Date: Fri, 27 Mar 2015 18:19:20 +0000 (+0300) Subject: Events: fixed possible crash on start or reload. X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=51df7912c4a1320ead61cb57acdeaf16ffdcc289;p=nginx.git 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. --- 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; }