Subject: Re: why must exiting processes wait forever for events that never occur?!?!?!
To: Paul A Vixie <vixie@mibh.net>
From: Charles M. Hannum <root@ihack.net>
List: tech-kern
Date: 10/17/2000 15:51:45
Actually, what makes Mike's solution sillier is that there's already
another way to do it. `stty -f /dev/tty... -crtscts -cdtrcts -mdmbuf'
should unstick the tty and cause any output to drain (unless the line
has been disconnected, in which case output is flushed anyway). I
*know* I fixed that in com and zs years ago; if there are drivers in
which it does not work, they are by definition broken. [Note: I
haven't checked whether software flow control unblocks correctly.]
Of course, accepting a signal wouldn't actually help in this case,
because all the signal would try to do is make the process exit again.
There's also no way for the signal to even take effect unless the
process tries to go back to user mode, which can't happen during exit.
In the Hurd, for example, all this cleanup is handled in their
mega-libc, and the equivalent of SIGKILL can terminate the
process/task at any time no matter what I/O is outstanding.