dougm 00/08/30 22:49:07
Modified: . Changes
Apache Apache.pm
src/modules/perl Apache.xs
Log:
switch usage of hard_timeout() to soft_timeout()
Revision Changes Path
1.509 +4 -0 modperl/Changes
Index: Changes
===================================================================
RCS file: /home/cvs/modperl/Changes,v
retrieving revision 1.508
retrieving revision 1.509
diff -u -r1.508 -r1.509
--- Changes 2000/08/31 03:39:44 1.508
+++ Changes 2000/08/31 05:49:04 1.509
@@ -10,6 +10,10 @@
=item 1.24_01-dev
+switch usage of hard_timeout() to soft_timeout(), so if SIGALRM
+happens during Apache::{print,read}, the script will continue run,
+allowing proper cleanup (e.g. DESTROY)
+
fix refcnt bug in $r->get_handlers,
thanks Geoffrey Young for the spot
1.53 +4 -4 modperl/Apache/Apache.pm
Index: Apache.pm
===================================================================
RCS file: /home/cvs/modperl/Apache/Apache.pm,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -r1.52 -r1.53
--- Apache.pm 2000/08/15 04:35:13 1.52
+++ Apache.pm 2000/08/31 05:49:05 1.53
@@ -68,7 +68,7 @@
$_[1] ||= "";
#$_[1] = " " x $bufsiz unless defined $_[1]; #XXX?
- $r->hard_timeout("Apache->read");
+ $r->soft_timeout("Apache->read");
while($bufsiz) {
$nrd = $r->read_client_block($buf, $bufsiz) || 0;
@@ -113,7 +113,7 @@
return 0;
}
- $r->hard_timeout("Apache->read");
+ $r->soft_timeout("Apache->read");
while($bufsiz) {
$nrd = $r->get_client_block($buf, $bufsiz) || 0;
@@ -425,7 +425,7 @@
looping until it gets all of C<$bytes_to_read> or a timeout happens.
In addition, this method sets a timeout before reading with
-C<$r-E<gt>hard_timeout>.
+C<$r-E<gt>soft_timeout>.
=item $r->get_remote_host
@@ -909,7 +909,7 @@
=item $r->print( @list )
This method sends data to the client with C<$r-E<gt>write_client>, but first
-sets a timeout before sending with C<$r-E<gt>hard_timeout>. This method is
+sets a timeout before sending with C<$r-E<gt>soft_timeout>. This method is
called instead of CORE::print when you use print() in your mod_perl programs.
This method treats scalar references specially. If an item in @list is a
1.106 +1 -1 modperl/src/modules/perl/Apache.xs
Index: Apache.xs
===================================================================
RCS file: /home/cvs/modperl/src/modules/perl/Apache.xs,v
retrieving revision 1.105
retrieving revision 1.106
diff -u -r1.105 -r1.106
--- Apache.xs 2000/08/31 03:39:45 1.105
+++ Apache.xs 2000/08/31 05:49:06 1.106
@@ -1033,7 +1033,7 @@
}
else {
CV *cv = GvCV(gv_fetchpv("Apache::write_client", FALSE, SVt_PVCV));
- hard_timeout("mod_perl: Apache->print", r);
+ soft_timeout("mod_perl: Apache->print", r);
PUSHMARK(mark);
#ifdef PERL_OBJECT
(void)(*CvXSUB(cv))(cv, pPerl); /* &Apache::write_client; */