(I split these up, since answers touch on different topics):
> Am 21.10.2015 um 16:48 schrieb Graham Leggett <minf...@sharp.fm>: > > On 21 Oct 2015, at 4:18 PM, Stefan Eissing <stefan.eiss...@greenbytes.de> > wrote: > >> How good does this mechanism work for mod_http2? On the one side it's the >> same, on the other quite different. >> >> On the real, main connection, the master connection, where the h2 session >> resides, things are >> pretty similar with some exceptions: >> - it is very bursty. requests continue to come in. There is no pause between >> responses and the next request. >> - pauses, when they happen, will be longer. clients are expected to keep >> open connections around for >> longer (if we let them). >> - When there is nothing to do, mod_http2 makes a blocking read on the >> connection input. This currently >> does not lead to the state B) or C). The worker for the http2 connection >> stays assigned. This needs >> to improve. > > The blocking read breaks the spirit of the event MPM. > > In theory, as long as you enter the write completion state and then not leave > until your connection is done, this problem will go away. > > If you want to read instead of write, make sure the CONN_SENSE_WANT_READ > option is set on the connection. This does not parse. I do not understand what you are talking about. When all streams have been passed into the output filters, the mod_http2 session does a status = ap_get_brigade(io->connection->input_filters,...) (h2_conn_io.c, line 160) similar to what ap_read_request() -> ap_rgetline_core() does. (protocol.c, line 236) What should mod_http2 do different here? //Stefan