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