> Hi, while testing the PerlCleanupHandler in HTML::Mason:
> 
> <%init>
> $r->push_handlers(PerlCleanupHandler => \&sleeptest);
> 
> sub sleeptest {
>     my $r = shift;
>     $r->warn("BEFORE SLEEP");
>     sleep(10);
>     $r->warn("AFTER SLEEP");
>     };
> </%init>
> 
> I've noticed that the page only finishes loading after the 
> PerlCleanupHandler has completely executed. A per the 
> documentation the cleanup is code is supposed to happen after 
> the client is gone, not while he's waiting.

I became curious and tested this by registering a PerlCleanupHandler
directly in apache. Documentation is correct - content was served before the
cleanup handler.

I know Mason quite well but I can't find any explanation for what you are
seeing... I know they try to delay sending content until the last possible
moment to ensure that any and all headers make it in. But I don't see how
they'd make it past the content phase.  Mason has an excellent mailing list,
btw - somewhere on masonhq.com. May be somebody can make sense of it there!
Good luck.

Reply via email to