> Am 19.12.2019 um 12:59 schrieb Yann Ylavic <[email protected]>:
>
> On Thu, Dec 19, 2019 at 10:39 AM <[email protected]> wrote:
> []
>>
>> Modified: httpd/httpd/trunk/modules/http2/h2_mplx.c
>> URL:
>> http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/http2/h2_mplx.c?rev=1871810&r1=1871809&r2=1871810&view=diff
>> ==============================================================================
>> --- httpd/httpd/trunk/modules/http2/h2_mplx.c (original)
>> +++ httpd/httpd/trunk/modules/http2/h2_mplx.c Thu Dec 19 09:39:22 2019
> []
>>
>> @@ -508,12 +511,11 @@ static void output_produced(void *ctx, h
>> h2_stream *stream = ctx;
>> h2_mplx *m = stream->session->mplx;
>>
>> - check_data_for(m, stream, 1);
>> + check_data_for(m, stream, 0);
>> }
>
> This should be mplx_is_locked=1, no? It seems that h2_mplx_out_open()
> takes the lock, then calls out_open() => output_produced().
Hmm. The output_produced is a callback in the h2_task output beam. The idea is
that when the h2 request writes to its output brigade, which ends up in the
output beam, this callback notifies the h2_mplx that there is data to be
handled.
Where do you see this callback invoked when the mplx is locked?