View | Details | Raw Unified | Return to bug 1129 | Differences between
and this patch

Collapse All | Expand All

(-)serverloop.c (-1 / +1 lines)
Lines 151-157 static void Link Here
151
sigchld_handler(int sig)
151
sigchld_handler(int sig)
152
{
152
{
153
	int save_errno = errno;
153
	int save_errno = errno;
154
	debug("Received SIGCHLD.");
155
	child_terminated = 1;
154
	child_terminated = 1;
156
	signal(SIGCHLD, sigchld_handler);
155
	signal(SIGCHLD, sigchld_handler);
157
	notify_parent();
156
	notify_parent();
Lines 752-757 collect_children(void) Link Here
752
	sigaddset(&nset, SIGCHLD);
751
	sigaddset(&nset, SIGCHLD);
753
	sigprocmask(SIG_BLOCK, &nset, &oset);
752
	sigprocmask(SIG_BLOCK, &nset, &oset);
754
	if (child_terminated) {
753
	if (child_terminated) {
754
		debug("Received SIGCHLD.");
755
		while ((pid = waitpid(-1, &status, WNOHANG)) > 0 ||
755
		while ((pid = waitpid(-1, &status, WNOHANG)) > 0 ||
756
		    (pid < 0 && errno == EINTR))
756
		    (pid < 0 && errno == EINTR))
757
			if (pid > 0)
757
			if (pid > 0)

Return to bug 1129