summaryrefslogtreecommitdiffhomepage
path: root/src/event/modules/ngx_devpoll_module.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/event/modules/ngx_devpoll_module.c')
-rw-r--r--src/event/modules/ngx_devpoll_module.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/event/modules/ngx_devpoll_module.c b/src/event/modules/ngx_devpoll_module.c
index 47313e949..05aed62fd 100644
--- a/src/event/modules/ngx_devpoll_module.c
+++ b/src/event/modules/ngx_devpoll_module.c
@@ -317,8 +317,9 @@ int ngx_devpoll_process_events(ngx_log_t *log)
events = ioctl(dp, DP_POLL, &dvp);
if (events == -1) {
- ngx_log_error(NGX_LOG_ALERT, log, ngx_errno, "ioctl(DP_POLL) failed");
- return NGX_ERROR;
+ err = ngx_errno;
+ } else {
+ err = 0;
}
nchanges = 0;
@@ -326,6 +327,10 @@ int ngx_devpoll_process_events(ngx_log_t *log)
if ((int) timer != INFTIM) {
gettimeofday(&tv, NULL);
delta = tv.tv_sec * 1000 + tv.tv_usec / 1000 - delta;
+
+#if (NGX_DEBUG_EVENT)
+ ngx_log_debug(log, "devpoll timer: %d, delta: %d" _ timer _ delta);
+#endif
ngx_event_expire_timers(delta);
} else {
@@ -334,11 +339,16 @@ int ngx_devpoll_process_events(ngx_log_t *log)
"ioctl(DP_POLL) returns no events without timeout");
return NGX_ERROR;
}
- }
#if (NGX_DEBUG_EVENT)
- ngx_log_debug(log, "devpoll timer: %d, delta: %d" _ timer _ delta);
+ ngx_log_debug(log, "devpoll timer: %d, delta: %d" _ timer _ delta);
#endif
+ }
+
+ if (err) {
+ ngx_log_error(NGX_LOG_ALERT, log, err, "ioctl(DP_POLL) failed");
+ return NGX_ERROR;
+ }
for (i = 0; i < events; i++) {