aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Hahler <git@thequod.de>2019-08-01 13:55:06 +0200
committerJustin M. Keyes <justinkz@gmail.com>2019-08-01 13:55:06 +0200
commit41bb68b8e8d05c38dbf730d72e30dbec25fcabea (patch)
tree2c01f4138c0b1c5155b62797aecad2c248fb67b3
parent65578693b28008ca953e446158e31c267e5df7a3 (diff)
downloadrneovim-41bb68b8e8d05c38dbf730d72e30dbec25fcabea.tar.gz
rneovim-41bb68b8e8d05c38dbf730d72e30dbec25fcabea.tar.bz2
rneovim-41bb68b8e8d05c38dbf730d72e30dbec25fcabea.zip
process_stop: uv: do not close stdin first/explicitly #10584
- process_stop: do not close stdin explicitly. The "close stdin" step was from aa9cb48, before we fixed/reworked the SIGTERM timing logic. So it's probably outdated / no longer needed. - win: jobstop: exit_code 15 GetExitCodeProcess appears to return the used signal. https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-getexitcodeprocess ref #10573
-rw-r--r--src/nvim/event/process.c4
-rw-r--r--test/functional/core/job_spec.lua8
2 files changed, 4 insertions, 8 deletions
diff --git a/src/nvim/event/process.c b/src/nvim/event/process.c
index 990dee0c7f..4410deadef 100644
--- a/src/nvim/event/process.c
+++ b/src/nvim/event/process.c
@@ -223,10 +223,6 @@ void process_stop(Process *proc) FUNC_ATTR_NONNULL_ALL
switch (proc->type) {
case kProcessTypeUv:
- // Close the process's stdin. If the process doesn't close its own
- // stdout/stderr, they will be closed when it exits(possibly due to being
- // terminated after a timeout)
- stream_may_close(&proc->in);
os_proc_tree_kill(proc->pid, SIGTERM);
break;
case kProcessTypePty:
diff --git a/test/functional/core/job_spec.lua b/test/functional/core/job_spec.lua
index 1bcf4b2891..2b00327f14 100644
--- a/test/functional/core/job_spec.lua
+++ b/test/functional/core/job_spec.lua
@@ -183,7 +183,7 @@ describe('jobs', function()
)
nvim('command', "call jobstop(j)")
eq({'notification', 'stdout', {0, {''}}}, next_msg())
- eq({'notification', 'exit', {0, 0}}, next_msg())
+ eq({'notification', 'exit', {0, iswin() and 15 or 0}}, next_msg())
end)
it('preserves NULs', function()
@@ -217,7 +217,7 @@ describe('jobs', function()
eq({'notification', 'stdout', {0, {'abc', 'xyz'}}}, next_msg())
nvim('command', "call jobstop(j)")
eq({'notification', 'stdout', {0, {''}}}, next_msg())
- eq({'notification', 'exit', {0, 0}}, next_msg())
+ eq({'notification', 'exit', {0, iswin() and 15 or 0}}, next_msg())
end)
it('preserves newlines', function()
@@ -234,7 +234,7 @@ describe('jobs', function()
next_msg())
nvim('command', "call jobstop(j)")
eq({'notification', 'stdout', {0, {''}}}, next_msg())
- eq({'notification', 'exit', {0, 0}}, next_msg())
+ eq({'notification', 'exit', {0, iswin() and 15 or 0}}, next_msg())
end)
it('avoids sending final newline', function()
@@ -244,7 +244,7 @@ describe('jobs', function()
next_msg())
nvim('command', "call jobstop(j)")
eq({'notification', 'stdout', {0, {''}}}, next_msg())
- eq({'notification', 'exit', {0, 0}}, next_msg())
+ eq({'notification', 'exit', {0, iswin() and 15 or 0}}, next_msg())
end)
it('closes the job streams with jobclose', function()