Regarding flush_buffer, and the perpetual difficulty we have both  
addressing its bugs and describing its behavior, I am inclined to  
finally make the change described here:

     http://marc.info/?t=105917762800001&r=1&w=2

Namely, that flush_buffer should only flush the main request buffer,  
and not attempt to flush past filters, subrequests, etc. This change  
is easy to make:

    --- Request.pm      (revision 3897)
    +++ Request.pm      (working copy)
    @@ -1397,7 +1397,8 @@
             if length $self->{request_buffer};
         $self->{request_buffer} = '';

    -    if ( $self->{top_stack}->[STACK_BUFFER_IS_FLUSHABLE]
    +    if ( $self->{aggressive_flush_buffer}
    +         && $self->{top_stack}->[STACK_BUFFER_IS_FLUSHABLE]
              && $self->{top_stack}->[STACK_BUFFER] )
         {
             my $comp = $self->{top_stack}->[STACK_COMP];

It only breaks one current test, 'flush_filter' in 05-request.t. IOW,  
flush_buffer will no longer work through filters.

Advantages of making this the official behavior:
* bugs like #38924 and #23535 go away (become "not a bug")
* we no longer have to try to make flush_buffer work "correctly" with  
various other features
* we no longer have to contort ourselves trying to explain how  
flush_buffer iteracts with filters, subrequests, etc. etc.

Because this is a backward incompatibility, I would add an  
'aggressive_flush_buffer' parameter that will make the old behavior  
available for a time. But these users would be "on their own" in terms  
of flush_buffer problems. I suspect that the vast majority of users  
would not need to use this parameter.

Comments?

Jon

P.S. See the whole thread above - http://marc.info/?t=105917762800001&r=1&w=2 
  - for an informative and occasionally amusing look at flush_buffer,  
clear_buffer and related problems.


------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
Mason-users mailing list
Mason-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mason-users

Reply via email to