su, 2004-04-18 kello 15:22, Nick Kew kirjoitti:
> Also a question: When I create a bucket brigade in a module, I always
> explicitly apr_brigade_destroy() it.  None of the filters in mod_deflate
> destroy their brigades.  A look at apr_brigade.c shows that it's not
> in fact necessary, but maybe a note to that effect would be in order?

Isn't it dangerous to apr_brigade_destroy()? As I understand,
apr_brigade_destroy frees the buckets in the brigade AND also frees the
brigade structure itself.

I used to do it with my output filter and I managed to crash Apache
right away. The reason was that mod_proxy_http keeps reusing the brigade
and doesn't take it nicely if someone goes and destroys it.

Cliff Wolley once said that you must either pass a bucket to the next
filter or destroy it but I have not heard from any authoritative source
what should be done with brigades. I just know that for my particular
case apr_brigade_destroy is a bad thing. On the other hand an output
filter should not have to know if it is processing content originated
from mod_proxy or mod_perl or any other handler, right? The interface
should always be the same.

-- Sami

Reply via email to