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

Reply via email to