diff options
author | Damien Miller <djm@mindrot.org> | 2000-10-15 12:21:32 +1100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2000-10-15 12:21:32 +1100 |
commit | 5993935f76e66c957f02efaa8fc0c8ff8a3f92c9 (patch) | |
tree | b8bc95b6caf3a4eeb66645409be9728c327ea6d9 /serverloop.c | |
parent | b4df15d1e119994ad1f3e73c1283414d2eb30a5f (diff) |
- (djm) Fix ssh2 hang on background processes at logout.
Diffstat (limited to 'serverloop.c')
-rw-r--r-- | serverloop.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/serverloop.c b/serverloop.c index 25320348..0c07a282 100644 --- a/serverloop.c +++ b/serverloop.c @@ -671,7 +671,8 @@ server_loop2(void) if (packet_not_very_much_data_to_write()) channel_output_poll(); wait_until_can_do_something(&readset, &writeset, 0); - if (child_terminated) { + if (child_terminated && child_has_selected) { + /* XXX: race - assumes only one child has terminated */ while ((pid = waitpid(-1, &status, WNOHANG)) > 0) session_close_by_pid(pid, status); child_terminated = 0; |