diff --git a/ChangeLog b/ChangeLog index 2bc7bf0f..aabf1b9e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sun May 14 15:05:00 MSK 2017 + Fixed resuming connections and closing upgraded connections in select() + mode with thread-per-connection. -EG + Sun May 14 14:49:00 MSK 2017 Removed extra call to resume connections in MHD_run(). Handle resumed connection without delay in epoll mode. diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c index c26d461e..9bed84bc 100644 --- a/src/microhttpd/daemon.c +++ b/src/microhttpd/daemon.c @@ -3509,12 +3509,13 @@ MHD_select (struct MHD_Daemon *daemon, FD_ZERO (&es); maxsock = MHD_INVALID_SOCKET; err_state = MHD_NO; + if ( (0 != (daemon->options & MHD_TEST_ALLOW_SUSPEND_RESUME)) && + (MHD_YES == resume_suspended_connections (daemon)) && + (0 == (daemon->options & MHD_USE_THREAD_PER_CONNECTION)) ) + may_block = MHD_NO; + if (0 == (daemon->options & MHD_USE_THREAD_PER_CONNECTION)) { - if ( (0 != (daemon->options & MHD_TEST_ALLOW_SUSPEND_RESUME)) && - (MHD_YES == resume_suspended_connections (daemon)) ) - may_block = MHD_NO; - /* single-threaded, go over everything */ if (MHD_NO == internal_get_fdset2 (daemon,