1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-26 00:01:47 -07:00

revert the last patch to the original fix: sleep BEFORE the first wait

it appears to be absolutely necessary for prevention of the load surge
This commit is contained in:
Sam Steingold 2007-03-25 03:03:40 +00:00
parent a0ca081df2
commit e7d4a90405

View file

@ -6501,17 +6501,17 @@ sigchld_handler (signo)
#define WUNTRACED 0
#endif /* no WUNTRACED */
/* Keep trying to get a status until we get a definitive result. */
while (1)
{
do
{
/* For some reason, this sleep() prevents Emacs from sending
loadavg to 5-8(!) for ~10 seconds.
See http://thread.gmane.org/gmane.emacs.devel/67722 or
http://www.google.com/search?q=busyloop+in+sigchld_handler */
sleep (1);
errno = 0;
pid = wait3 (&w, WNOHANG | WUNTRACED, 0);
if (! (pid < 0 && errno == EINTR))
break;
/* Avoid a busyloop: wait3 is a system call, so we do not want
to prevent the kernel from actually sending SIGCHLD to emacs
by asking for it all the time. */
sleep (1);
}
while (pid < 0 && errno == EINTR);
if (pid <= 0)
{