diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2018-02-20 15:15:06 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-20 15:15:06 +0100 |
commit | c57d31596370e12a3e2019468ea6cefecf69449e (patch) | |
tree | 3853b97e7c199fb7565022f4e66c57fd6592835d /src | |
parent | 6bbec71fdebd2b125350675d8683a0adf244c3c3 (diff) | |
parent | 04fdbfe17d5c8242f54459472120177188949f82 (diff) | |
download | rneovim-c57d31596370e12a3e2019468ea6cefecf69449e.tar.gz rneovim-c57d31596370e12a3e2019468ea6cefecf69449e.tar.bz2 rneovim-c57d31596370e12a3e2019468ea6cefecf69449e.zip |
Merge pull request #8031 from bfredl/gotintstatus
jobwait: return -2 on interrupt even with timeout
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/event/process.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/src/nvim/event/process.c b/src/nvim/event/process.c index 4eb2dd0baf..a06f5f4ff3 100644 --- a/src/nvim/event/process.c +++ b/src/nvim/event/process.c @@ -151,7 +151,6 @@ void process_close_streams(Process *proc) FUNC_ATTR_NONNULL_ALL int process_wait(Process *proc, int ms, MultiQueue *events) FUNC_ATTR_NONNULL_ARG(1) { - bool interrupted = false; if (!proc->refcount) { int status = proc->status; LOOP_PROCESS_EVENTS(proc->loop, proc->events, 0); @@ -173,7 +172,6 @@ int process_wait(Process *proc, int ms, MultiQueue *events) // we'll assume that a user frantically hitting interrupt doesn't like // the current job. Signal that it has to be killed. if (got_int) { - interrupted = true; got_int = false; process_stop(proc); if (ms == -1) { @@ -184,14 +182,13 @@ int process_wait(Process *proc, int ms, MultiQueue *events) } else { LOOP_PROCESS_EVENTS(proc->loop, events, 0); } + + proc->status = -2; } if (proc->refcount == 1) { // Job exited, collect status and manually invoke close_cb to free the job // resources - if (interrupted) { - proc->status = -2; - } decref(proc); if (events) { // the decref call created an exit event, process it now |