> 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
