diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2018-04-14 12:03:34 +0200 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2018-04-15 18:23:11 +0200 |
commit | 8fa0b8051dbe2f4e4a00c162913886a34bf78bfa (patch) | |
tree | a40e209b552921c4657280046e9573eb4e7dd759 /test/functional/eval/buf_functions_spec.lua | |
parent | c8f409c2f297180ee06b474ef59653aebb817a4a (diff) | |
download | rneovim-8fa0b8051dbe2f4e4a00c162913886a34bf78bfa.tar.gz rneovim-8fa0b8051dbe2f4e4a00c162913886a34bf78bfa.tar.bz2 rneovim-8fa0b8051dbe2f4e4a00c162913886a34bf78bfa.zip |
job-control: mitigate process-kill race
children_kill_cb() is racey. One obvious problem is that
process_close_handles() is *queued* by on_process_exit(), so when
children_kill_cb() is invoked, the dead process might still be in the
`loop->children` list. If the OS already reclaimed the dead PID, Nvim
may try to SIGKILL it.
Avoid that by checking `proc->status`.
Vim doesn't have this problem because it doesn't attempt to kill
processes that ignored SIGTERM after a timeout.
closes #8269
Diffstat (limited to 'test/functional/eval/buf_functions_spec.lua')
0 files changed, 0 insertions, 0 deletions