> Am 22.02.2017 um 10:01 schrieb Yann Ylavic <[email protected]>:
> 
> On Wed, Feb 22, 2017 at 8:52 AM, Stefan Eissing
> <[email protected]> wrote:
>> 
>>> Am 21.02.2017 um 18:34 schrieb Yann Ylavic <[email protected]>:
>>> 
>>> We are back to initial issue here, no?
>> 
>> Surely hope not. All subpools of mplx->pool are guarded by mplx->lock mutex 
>> already.
> 
> OK, slaves/tasks creations look safe indeed.
> 
> Also (mainly for my guidance), what about streams' creation (from
> session->pool)?
> This is in nghttp2's on_begin_headers_cb(), hence always by the same thread?

Yes, all on the master "side". And lifetime of a stream is now always >= 
lifetime of its slave/task (modulo slave reuse). Go betweens are only h2_mplx 
and h2_bucket_beam, with beams now also handling response headers and trailers.

I am currently thinking about moving the complete stream set from mplx back to 
session and only giving streams to mplx for cleanup. I also want to try the 
possible gains when each beam has its own mutex. 

Another bigger change idea would to bundle to beams to a h2_bucket_pipe and tie 
that to a slave connection, to be reused for multiple requests. That would give 
a bi-directional bucket "connection" for slaves. Make that usable in pollsets. 
Integrate that into mpm and we could get rid of h2_workers...

A man can dream...

> 
> Thanks for your patience ;)

My pleasure. ;)

Stefan Eissing

<green/>bytes GmbH
Hafenstrasse 16
48155 Münster
www.greenbytes.de

Reply via email to