Rodent of Unusual Size wrote:
>
> [EMAIL PROTECTED] wrote:
> >
> > I now have a patch that compiles cleanly, and should completely
> > remove the pipe_of_death. The basic idea is that everything is
> > done through signals, using the SIGWAIT logic. As for waking
> > threads up from apr_poll, that is done by connecting to the socket
> > from the server itself, and then immediately closing the socket.
>
> Ugh. Ick. -1. If the system's stack is hosed, or the network
> is being shut down (think OS/390), this can cause problems.
<sigh>
You wouldn't believe the flack I took on this one. Both Jeff and the
Rodent were after me. ISTR a snide remark about being a spy from a
small company in the Bay area...sheesh. I think Ken was considering
beating me with a stick, and we're not talking chopsticks, it was his
cane! (Victor, is it a coincidence that you decided to work from home
today??)
We can solve this specific OS/390 issue pretty simply -
clean_child_exit(APEXIT_CHILDFATAL). Believe me, we won't have any
trouble popping the accept()s or poll()s when the stack is down. OS/390
users don't expect network apps to stay up across stack bounces anyway.
I'll do that in a bit, unless Jeff beats me to it.
But there are other complications, unfortunately. I hope we can work
thru enough of the issues so that we could get rid of the pipe of death
for some set of users, but it's hard to say at this point.
In the mean time, I'll trim down this patch to the most essential piece
- writing to the pipe of death - and commit it. Please speak up ASAP if
you have a problem with this.
Greg