diff options
Diffstat (limited to 'src/server.c')
-rw-r--r-- | src/server.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/server.c b/src/server.c index ebc2b761..bf4ff09e 100644 --- a/src/server.c +++ b/src/server.c @@ -2026,17 +2026,15 @@ static int server_main_loop (server * const srv) { } } - if ((n = fdevent_poll(srv->ev, 1000)) > 0) { - fdevent_process(srv, srv->ev, n); - last_active_ts = srv->cur_ts; - } else if (n < 0 && errno != EINTR) { + if ((n = fdevent_poll(srv->ev, 1000)) >= 0) { + if (n > 0) last_active_ts = srv->cur_ts; + fdevent_sched_run(srv, srv->ev); + } else if (errno != EINTR) { log_error_write(srv, __FILE__, __LINE__, "ss", "fdevent_poll failed:", strerror(errno)); } - if (n >= 0) fdevent_sched_run(srv, srv->ev); - for (size_t ndx = 0; ndx < joblist->used; ++ndx) { connection *con = joblist->ptr[ndx]; connection_state_machine(srv, con); |