httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yann Ylavic <ylavic....@gmail.com>
Subject Re: mod_http2 and Frequent wake-ups for mpm_event
Date Wed, 25 Jan 2017 00:41:24 GMT
Hi Stefan,

On Tue, Jan 24, 2017 at 1:37 PM, Stefan Eissing
<stefan.eissing@greenbytes.de> wrote:
> Yann, thanks for the patch. I agree that the cleanups need to be killed in the right
place. Not certain if it was wrong before, but that part is not easy to see for every combination.
>
> I did some rework and hope this makes it more readable. If you find the time to look
at it, feedback welcome.

I still fear that if beam->pool gets destroyed while both
beam_send_cleanup() and beam_cleanup() are registered, the former is
called twice.

I'd change:
    if (safe_send) {
        if (beam->send_pool && beam->send_pool != beam->pool) {
            apr_pool_cleanup_kill(beam->send_pool, beam, beam_send_cleanup);
        }
        status = beam_send_cleanup(beam);
    }

with:
    if (safe_send) {
        if (beam->send_pool) {
            if (beam->send_pool != beam->pool) {
                apr_pool_cleanup_kill(beam->send_pool, beam, beam_send_cleanup);
            }
            status = beam_send_cleanup(beam);
        }
    }

since in the above case beam_send_cleanup is run first and sets send_pool=NULL.

Attached v3 with this only change w.r.t. v2.
Otherwise, looks good to me, thanks!

Mime
View raw message