aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/os/event.c14
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