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  | 
