From 8ed588ce32b96d4e9ca2f495defa4897e46497d3 Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Thu, 12 Oct 2017 02:44:35 -0400 Subject: [PATCH] [core] handle fds pending close after poll timeout (fixes #2827) handle fds pending close whether or not new events are triggered (thx davidm) x-ref: "POST to mod_cgi sometimes hangs" https://redmine.lighttpd.net/issues/2827 --- src/server.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/server.c b/src/server.c index 3452a82d..d5ffb48b 100644 --- a/src/server.c +++ b/src/server.c @@ -2085,13 +2085,14 @@ static int server_main (server * const srv, int argc, char **argv) { (*handler)(srv, context, revents); } } while (--n > 0); - fdevent_sched_run(srv, srv->ev); } else if (n < 0 && errno != EINTR) { log_error_write(srv, __FILE__, __LINE__, "ss", "fdevent_poll failed:", strerror(errno)); } + if (n >= 0) fdevent_sched_run(srv, srv->ev); + for (ndx = 0; ndx < srv->joblist->used; ndx++) { connection *con = srv->joblist->ptr[ndx]; connection_state_machine(srv, con);