On 29 Oct 2013, at 12:07 PM, Plüm, Rüdiger, Vodafone Group 
<ruediger.pl...@vodafone.com> wrote:

>> +                status = ap_save_brigade(f, &(filter_ctx->bb), &bb,
>> +                        filter_ctx->deferred_write_pool);
> 
> When will this saved brigade handed over to the core output filter?
> How will it be triggered? IMHO the WRITE_COMPLETION only calls the core 
> output filter.

Ouch, so it is:

        while (output_filter->next != NULL) {
            output_filter = output_filter->next;
        }

Ideally there should be a category of filters that run during write completion, 
not just a hard coded "write to the last filter and hope for the best". 
Alternatively if filters could declare themselves "async safe", we could inject 
the switch-to-write-completion-on-eos behaviour into a dedicated filter that 
slots itself automatically in front of all the async safe filters in the chain.

I think I'm back to removing the flush-on-eos for the short term.

>> -        c->data_in_output_filters = 0;
>> +        c->data_in_output_filters--;
> 
> Why do you switch from a boolean flag to a counter?

Two output filters keeping data, not one.

Regards,
Graham
--

Reply via email to