diff options
Diffstat (limited to 'serverloop.c')
-rw-r--r-- | serverloop.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/serverloop.c b/serverloop.c index 58e901de8..977ed41f6 100644 --- a/serverloop.c +++ b/serverloop.c | |||
@@ -85,7 +85,6 @@ sigchld_handler2(int sig) | |||
85 | int save_errno = errno; | 85 | int save_errno = errno; |
86 | debug("Received SIGCHLD."); | 86 | debug("Received SIGCHLD."); |
87 | child_terminated = 1; | 87 | child_terminated = 1; |
88 | signal(SIGCHLD, sigchld_handler2); | ||
89 | errno = save_errno; | 88 | errno = save_errno; |
90 | } | 89 | } |
91 | 90 | ||
@@ -650,6 +649,7 @@ server_loop2(void) | |||
650 | while ((pid = waitpid(-1, &status, WNOHANG)) > 0) | 649 | while ((pid = waitpid(-1, &status, WNOHANG)) > 0) |
651 | session_close_by_pid(pid, status); | 650 | session_close_by_pid(pid, status); |
652 | child_terminated = 0; | 651 | child_terminated = 0; |
652 | signal(SIGCHLD, sigchld_handler2); | ||
653 | } | 653 | } |
654 | channel_after_select(&readset, &writeset); | 654 | channel_after_select(&readset, &writeset); |
655 | process_input(&readset); | 655 | process_input(&readset); |