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:
parent
a0ca081df2
commit
e7d4a90405
1 changed files with 8 additions and 8 deletions
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue