|
From: | Sam Steingold |
Subject: | Re: busyloop in sigchld_handler |
Date: | Mon, 12 Mar 2007 13:53:25 -0400 |
User-agent: | Thunderbird 1.5.0.8 (X11/20061107) |
Andreas Schwab wrote:
Sam Steingold <address@hidden> writes:wait3 is a system call, which, when invoked in a loop, prevents the kernel from doing anything else (in this case, sending SIGCHLD to emacs). sleep allows the kernel some time to pass the signal.I don't find this explanation convincing at all. Since the system call is made _inside_ the signal handler, the signal is actually blocked here, so it cannot be delivered anyway.
yes, you are right.what I should have said was that by making a system call in a busyloop, emacs prevents the kernel from doing what it needs to do to the the child so that wait3 will succeed.
Sam.
[Prev in Thread] | Current Thread | [Next in Thread] |