> Am 26.04.2020 um 17:26 schrieb Yann Ylavic <[email protected]>:
> 
> After a look at our codebase, this would work as is, all of the FILE
> buckets we pass through output filters are from r->pool, so the
> lifetime is within the EOR scope (I'm not totally sure about the http2
> beam case, Stefan?).

Lacking a name to describe the pool situtation in mod_http2, yet, let's use 
"crossing conntections" for now. The "main" connection (to the h2 client) and 
the one processing the h2 streams (requests) are side-by-side, living mostly in 
separate threads even. Buckets in request brigades need to "cross" these 
connections.

In my delusion of having understood all about pools, threads and filters, I 
made h2_bucket_beam for the purpose of avoiding copying bucket data, especially 
files,
across connections. And for files, it needs to apr_file_setaside() into the 
other connection. Which, I guess, only works for non-split file buckets. But I 
am no longer certain.

In an alternate universe, were I to do it again, I would not place HTTP/2 into 
the httpd process itself. Not only because it is tricky, but it also affects 
further optimizations of the HTTP/1.x case more difficult. As to be seen from 
this discussion.

- Stefan


Reply via email to