commit 483c1890dde3a1c8f1054657a14b1498f2ab2fc7 parent f994a286234c0bd8a0670cd1ae32ce0cff4e54fd Author: Evgeny Grin (Karlson2k) <k2k@drgrin.dev> Date: Wed, 31 Dec 2025 12:10:18 +0100 Make sure that externally added connections are processed without delay Diffstat:
| M | src/mhd2/events_process.c | | | 12 | ++++++++++++ |
1 file changed, 12 insertions(+), 0 deletions(-)
diff --git a/src/mhd2/events_process.c b/src/mhd2/events_process.c @@ -265,6 +265,16 @@ mhd_daemon_get_wait_max (const struct MHD_Daemon *restrict d) #endif return 0; } + if (NULL != mhd_DLINKEDL_GET_FIRST (&(d->events.act_req.ext_added.worker), + queue)) + { +#ifdef mhd_DEBUG_POLLING_FDS + fprintf (stderr, + "### mhd_daemon_get_wait_max(daemon) -> zero " + "(externally added connection(s) pending)\n"); +#endif + return 0; + } ret = mhd_daemon_get_wait_erliest_timeout (d); @@ -1958,6 +1968,8 @@ process_all_events_and_data (struct MHD_Daemon *restrict d) break; } + mhd_daemon_process_ext_added_conns (d); + if (d->events.accept_pending && ! d->conns.block_new) d->events.accept_pending = ! daemon_accept_new_conns (d);