I have a question concerning the proper behavior of rflush() with mp1. I'm using Apache/1.3.28 and mod_perl/1.28 on OSX jaguar 10.2.6. Overall mp1 appears to work great. However, the following code does not work as expected:
use CGI (); my $r = shift; my $q = new CGI; print $q->header('text/html'); print $q->start_html;
print $q->p("Searching...Please wait");
$r->rflush; # imitate a lengthy operation for (1..3) { sleep 1; } print $q->p("Done!");
The "Searching...Please wait" text does not display until the sleeps are done. Adding $|=1; up top does not help. However, this code does work:
use CGI (); my $r = shift; my $q = new CGI; print $q->header('text/html'); print $q->start_html; for (1..263) { print $q->p("Searching...Please wait"); } $r->rflush; # imitate a lengthy operation for (1..3) { sleep 1; } print $q->p("Done!");
It appears that if I print out over 8k, the buffers flush. Less than that, no flush. Is this proper behavior? And, if so, is there a parameter I can change somewhere to lower the value or force a flush regardless of what's in the buffer? I have tried very hard to find documentation or previous discussion in this group to no avail.
Sounds like you have a buffering proxy in front of your mod_perl server. Test it without any front-end proxy, accessing the back-end server directly.
If you don't believe that it works, you can run strace on the process, to see it working correctly. You can see an example here:
http://perl.apache.org/docs/1.0/guide/debug.html#Detecting_Aborted_Connections
__________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com