aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2016-01-18 13:54:20 +0100
committerBjörn Linse <bjorn.linse@gmail.com>2016-01-20 11:09:29 +0100
commitf6ecd127b9c999b63d33e2da542f32528530698a (patch)
treeb6a2e2f41abb83f0f732ad259cddf7dab66ef741
parent4618307a6ccd2b45349d8ade88c47e101844e9ee (diff)
downloadrneovim-f6ecd127b9c999b63d33e2da542f32528530698a.tar.gz
rneovim-f6ecd127b9c999b63d33e2da542f32528530698a.tar.bz2
rneovim-f6ecd127b9c999b63d33e2da542f32528530698a.zip
job control: don't kill PTY processes on exit
These will automatically recieve SIGHUP on closing PTY master.
-rw-r--r--src/nvim/event/process.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/nvim/event/process.c b/src/nvim/event/process.c
index d365a78a9d..e6012595fd 100644
--- a/src/nvim/event/process.c
+++ b/src/nvim/event/process.c
@@ -120,9 +120,14 @@ void process_teardown(Loop *loop) FUNC_ATTR_NONNULL_ALL
// Close handles to process without killing it.
CREATE_EVENT(loop->events, process_close_handles, 1, proc);
} else {
- uv_kill(proc->pid, SIGTERM);
- proc->term_sent = true;
- process_stop(proc);
+ if (proc->type == kProcessTypeUv) {
+ uv_kill(proc->pid, SIGTERM);
+ proc->term_sent = true;
+ process_stop(proc);
+ } else { // kProcessTypePty
+ process_close_streams(proc);
+ pty_process_close_master((PtyProcess *)proc);
+ }
}
}