diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/os/job.c | 8 | ||||
-rw-r--r-- | src/nvim/os/shell.c | 3 |
2 files changed, 6 insertions, 5 deletions
diff --git a/src/nvim/os/job.c b/src/nvim/os/job.c index c18a83e817..4c01829159 100644 --- a/src/nvim/os/job.c +++ b/src/nvim/os/job.c @@ -97,7 +97,7 @@ void job_teardown(void) // their status with `wait` or handling SIGCHLD. libuv does that // automatically (and then calls `exit_cb`) but we have to give it a chance // by running the loop one more time - uv_run(uv_default_loop(), UV_RUN_NOWAIT); + event_poll(0); // Prepare to start shooting for (i = 0; i < MAX_RUNNING_JOBS; i++) { @@ -107,8 +107,8 @@ void job_teardown(void) while (job && is_alive(job) && remaining_tries--) { os_delay(50, 0); // Acknowledge child exits - uv_run(uv_default_loop(), UV_RUN_NOWAIT); - // It's possible that the uv_run call removed the job from the table, + event_poll(0); + // It's possible that the event_poll call removed the job from the table, // reset 'job' so the next iteration won't run in that case. job = table[i]; } @@ -118,7 +118,7 @@ void job_teardown(void) } } // Last run to ensure all children were removed - uv_run(uv_default_loop(), UV_RUN_NOWAIT); + event_poll(0); } /// Tries to start a new job. diff --git a/src/nvim/os/shell.c b/src/nvim/os/shell.c index a127597e52..d5464f7975 100644 --- a/src/nvim/os/shell.c +++ b/src/nvim/os/shell.c @@ -8,6 +8,7 @@ #include "nvim/ascii.h" #include "nvim/lib/kvec.h" #include "nvim/log.h" +#include "nvim/os/event.h" #include "nvim/os/job.h" #include "nvim/os/rstream.h" #include "nvim/os/shell.h" @@ -213,7 +214,7 @@ int os_call_shell(char_u *cmd, ShellOpts opts, char_u *extra_shell_arg) // Keep running the loop until all three handles are completely closed while (pdata.exited < expected_exits) { - uv_run(uv_default_loop(), UV_RUN_ONCE); + event_poll(0); if (got_int) { // Forward SIGINT to the shell |