AIX.
On AIX, for processes like mod_cgid's script children where
SIGCHLD is ignored, kill(pid,0) returns success for up to
one second after the script child exits, based on when a
daemon runs to clean up unnecessary process table entries.
getpgid() can report the proper info (-1/ESRCH) immediately.
One user had a page with a lot of embedded images created by
CGIs, and the browser fetched them on a keepalive connection,
and the cumulative delays were very noticeable by the clients.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@101716
13f79535-47bb-0310-9956-
ffa450edef68
[Remove entries to the current 2.0 section below, when backported]
+ *) Fix a long delay with CGI requests and keepalive connections on
+ AIX. [Jeff Trawick]
+
*) Fix uninitialized gprof directory name in prefork MPM. PR 24450.
[Chris Knight <Christopher.D.Knight@nasa.gov>]
apr_interval_time_t total = 0;
do {
+#ifdef _AIX
+ /* On AIX, for processes like mod_cgid's script children where
+ * SIGCHLD is ignored, kill(pid,0) returns success for up to
+ * one second after the script child exits, based on when a
+ * daemon runs to clean up unnecessary process table entries.
+ * getpgid() can report the proper info (-1/ESRCH) immediately.
+ */
+ if (getpgid(pid) < 0) {
+#else
if (kill(pid, 0) < 0) {
+#endif
return APR_SUCCESS;
}
apr_sleep(interval);