Skip to contentSkip to conversation

Why does do_signal() repost deadly signals?

DISCUSSION Brian J. Watson 1 participant 1 message Apr 18, 2001

lore
Share & tools
lore
#0 lore raw

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.