diff options
-rw-r--r-- | src/nvim/os/event.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/nvim/os/event.c b/src/nvim/os/event.c index bfb8a625ef..5a5da5cd63 100644 --- a/src/nvim/os/event.c +++ b/src/nvim/os/event.c @@ -79,12 +79,14 @@ void event_teardown(void) signal_teardown(); input_stop(); input_teardown(); - do { - // This will loop forever if we leave any unclosed handles. Currently it is - // the most reliable way to use travis for verifying the no libuv-related - // bugs(which can be hard to track later) were introduced on a PR. - uv_run(uv_default_loop(), UV_RUN_DEFAULT); - } while (uv_loop_close(uv_default_loop())); + // this last `uv_run` will return after all handles are stopped, it will + // also take care of finishing any uv_close calls made by other *_teardown + // functions. + uv_run(uv_default_loop(), UV_RUN_DEFAULT); + // abort that if we left unclosed handles + if (uv_loop_close(uv_default_loop())) { + abort(); + } } // Wait for some event |