diff options
-rw-r--r-- | src/nvim/event/process.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/nvim/event/process.c b/src/nvim/event/process.c index 554a592d5c..3c8c08e235 100644 --- a/src/nvim/event/process.c +++ b/src/nvim/event/process.c @@ -126,8 +126,10 @@ void process_teardown(Loop *loop) FUNC_ATTR_NONNULL_ALL } } - // Wait until all children exit - LOOP_PROCESS_EVENTS_UNTIL(loop, loop->events, -1, kl_empty(loop->children)); + // Wait until all children exit and all close events are processed. + LOOP_PROCESS_EVENTS_UNTIL( + loop, loop->events, -1, + kl_empty(loop->children) && queue_empty(loop->events)); pty_process_teardown(loop); } |