Why does do_signal() repost deadly signals?

Brian J. Watson (Brian.J.Watson@compaq.com)
Wed, 18 Apr 2001 16:48:19 -0700


If a signal's default behavior is to kill a process, do_signal() reposts that
signal before calling do_exit(). Why does it do that?

Our guess is that it prevents the exiting process from blocking for an extremely
long period of time. One example might be a process with an open NFS file. The
process has to flush its writes out to the server during the close, but the
server might be unavailable. Examining the code, it looks like the reposted
signal prevents the NFS flush from waiting on any RPC response.

Is this the reason for reposting the signal? Are there any others?

--
Brian Watson
Compaq Computer

Not subscribed to LKML. Please CC me in response. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/