event: Assert that all libuv handles are closed on exit.

Travis build will now fail when core files are dumped, so call `abort()` when
the event loop is not fully released before exiting.
This commit is contained in:
Thiago de Arruda 2014-11-03 15:53:58 -03:00
parent 636fc6b08d
commit c9cc2aa53d

View File

@ -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