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)?



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.


Reply via email to