Le 03/02/2021 à 09:24, Ruediger Pluem a écrit :
On 2/2/21 4:18 PM, Yann Ylavic wrote:
On Tue, Feb 2, 2021 at 10:32 AM Ruediger Pluem <rpl...@apache.org> wrote:
New Revision: 1885605
URL: http://svn.apache.org/viewvc?rev=1885605&view=rev
[]
+ /* Yield if the output filters stack is full? This is to avoid
+ * blocking and give the caller a chance to POLLOUT async.
+ */
+ if (flags & AP_PROXY_TRANSFER_YIELD_PENDING) {
+ int rc = OK;
+
+ if (!ap_filter_should_yield(c_o->output_filters)) {
+ rc = ap_filter_output_pending(c_o);
I am confused here: !ap_filter_should_yield(c_o->output_filters) means there is
no pending output.
Why should we try to send it then? Shouldn't it be the other way round?
Yes, !ap_filter_should_yield() means that there is no pending output,
but only for filters that play the
ap_filter_{setaside,reinstate}_brigade() game.
The goal here is to try to flush pending data of filters that don't
ap_filter_setaside_brigade(), like e.g. ssl_io_filter_coalesce() which
But isn't ap_filter_output_pending a noop that always returns DECLINED in case
of !ap_filter_should_yield(c_o->output_filters)?
Regards
Rüdiger
Same backport for which a just sent a question about a potential missing
part of r1877558.
Unrelated, but is there still something to discuss here.
The last comment from Rüdiger seems to have been left un-answered.
CJ