View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0005653 | libmicrohttpd | external API | public | 2019-03-16 18:51 | 2019-08-01 14:38 |
Reporter | silvioprog | Assigned To | |||
Priority | normal | Severity | feature | Reproducibility | have not tried |
Status | closed | Resolution | won't fix | ||
Summary | 0005653: [FEATURE REQUEST] Event listener to reuse the builtin MHD's thread / loop | ||||
Description | Hello. It would be nice if MHD could allow something like this: d = MHD_start_daemon (MHD_USE_AUTO_INTERNAL_THREAD, 8080, NULL, NULL, &ahc_cb, NULL, MHD_OPTION_EVENT_LISTENER, &my_event, my_closure, MHD_OPTION_END); this way, the "my_event()" would be triggered within internal MHD thread by its loop. It would be useful: - to expire sessions without using loop/mutex in the application thread - to notify external classes that the server is live - to reuse the internal library loop instead of the thread of VCL applications when their loop (idle) isn't available | ||||
Tags | No tags attached. | ||||
|
Possible better name for the option:MHD_OPTION_IDLE |
|
Still not clear the purpose of such external event listener. MHD do not trigger internal processing if no data is coming and no data is scheduled to be sent. Only exception is timeout expiration of connection, but you already can monitor it by 'MHD_OPTION_NOTIFY_CONNECTION'. |
|
> Still not clear the purpose of such external event listener. It would be some callback triggered all the time by the built-in MHD loop, however, after the explanation below ... > MHD do not trigger internal processing if no data is coming and no data is scheduled to be sent. ... this feature sounds not possible. The "on idle" event is present in some application designs, something like this: do { /* ... process the application stuff ... */ if (idle_callback) idle_callback(); } while (!app.terminated); but, if I properly understood, in MHD we have something like this: do { wait_for_client_stuff(); // if any connection/data never arrives, it still hold here, so the callback below isn't triggered if (idle_callback) idle_callback(); } while (!daemon.stopped); so this feature couldn't be possible, and I'm inclined to set this issue as "won't fix". Thanks for explaining! |
Date Modified | Username | Field | Change |
---|---|---|---|
2019-03-16 18:51 | silvioprog | New Issue | |
2019-03-16 18:54 | silvioprog | Summary | [FEATURE REQUEST] Event listener to reuse the MHD's thread / loop => [FEATURE REQUEST] Event listener to reuse the builtin MHD's thread / loop |
2019-03-18 08:37 | silvioprog | Note Added: 0014216 | |
2019-05-25 10:58 | Karlson2k | Note Added: 0014441 | |
2019-05-26 07:37 | silvioprog | Note Added: 0014444 | |
2019-05-26 07:38 | silvioprog | Note Edited: 0014444 | |
2019-05-27 14:53 | Karlson2k | Status | new => resolved |
2019-05-27 14:53 | Karlson2k | Resolution | open => won't fix |
2019-08-01 14:38 | Christian Grothoff | Status | resolved => closed |
2024-01-21 13:24 | Christian Grothoff | Category | libmicrohttpd API => external API |