Hi, On Sun, May 28, 2017 at 8:38 PM, Stefan Priebe - Profihost AG <s.pri...@profihost.ag> wrote: > Hi Luca, > > Am 27.05.2017 um 09:10 schrieb Luca Toscano: >> Hi Jim, >> >> 2017-05-25 14:23 GMT+02:00 Jim Jagielski <j...@jagunet.com >> <mailto:j...@jagunet.com>>: >> >> Until a proposal in in STATUS (and apologies if it is), its >> suitability for 2.4.x is a big unknown. >> >> >> you are completely right, afaik the last patch tested by Stefan Priebe >> was https://bz.apache.org/bugzilla/attachment.cgi?id=34641&action=diff >> (Stefan correct me if I am wrong). > > Yes that's right. Yann told something about a V8 coming soon but that's > weeks ago. V7 seems to run fine. Currently running on nearly 2000 vms.
V7 proposed for backport to 2.4.x. I called it v7.1 because of the following added hunk. This removed code was 2.4 specific (not in trunk) and already handled above (before the poll), so I don't see why we'd lock g_timer_skiplist_mtx one more time here instead of waiting for the next loop (and accurate timeout now thanks to wakeup). @@ -1632,21 +1765,6 @@ static void * APR_THREAD_FUNC listener_thread(apr_ break; } - now = apr_time_now(); - apr_thread_mutex_lock(g_timer_skiplist_mtx); - ep = apr_skiplist_peek(timer_skiplist); - while (ep) { - if (ep->when < now + EVENT_FUDGE_FACTOR) { - apr_skiplist_pop(timer_skiplist, NULL); - push_timer2worker(ep); - } - else { - break; - } - ep = apr_skiplist_peek(timer_skiplist); - } - apr_thread_mutex_unlock(g_timer_skiplist_mtx); - while (num) { pt = (listener_poll_type *) out_pfd->client_data; if (pt->type == PT_CSD) { > >> If I remember correctly it might be possible that some commits were not >> necessary since they were made as a test to remove segfaults that we >> discovered due to other things. I'll wait Yann's feedback but if anybody >> wants to check the patch it would be really great. V7 is all we need for now, the other changes relative to ptrans allocator should be (and are now) addressed in mod_http2 (not really needed for HTTP/1 handling). Regarding v8, this is possibly an optimization to avoid external locking when adding or removing events from the pollset, but it introduces some race conditions which should be addressed before I propose something. Regards, Yann.