aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/vim.c
diff options
context:
space:
mode:
authorCharlie Groves <charlie.groves@gmail.com>2022-03-01 15:58:42 -0500
committerCharlie Groves <charlie.groves@gmail.com>2022-03-01 16:13:23 -0500
commit045422e4a081e9dedff014346cc32eaef45e04e1 (patch)
treeab79a7f541fe4aeab57dd0b882feafab70626703 /src/nvim/api/vim.c
parented1a9c310df178e1163c910f70b194a657ad055a (diff)
downloadrneovim-045422e4a081e9dedff014346cc32eaef45e04e1.tar.gz
rneovim-045422e4a081e9dedff014346cc32eaef45e04e1.tar.bz2
rneovim-045422e4a081e9dedff014346cc32eaef45e04e1.zip
fix: respect os_proc_children rv of pid not found
os_proc_children returns 2 if there's a failure in the underlying syscall. Only shell out to pgrep in that case. It returns 1 if the pid isn't found. In that case, we can roll forward with returning an empty list.
Diffstat (limited to 'src/nvim/api/vim.c')
-rw-r--r--src/nvim/api/vim.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c
index 9d0b096a36..c37df45c14 100644
--- a/src/nvim/api/vim.c
+++ b/src/nvim/api/vim.c
@@ -1991,7 +1991,7 @@ Array nvim_get_proc_children(Integer pid, Error *err)
size_t proc_count;
int rv = os_proc_children((int)pid, &proc_list, &proc_count);
- if (rv != 0) {
+ if (rv == 2) {
// syscall failed (possibly because of kernel options), try shelling out.
DLOG("fallback to vim._os_proc_children()");
Array a = ARRAY_DICT_INIT;