loop_close: Avoid infinite loop, and log it.

Avoids a hang, and also helps diagnose issues like:

https://github.com/neovim/neovim/pull/6594#issuecomment-298321826
This commit is contained in:
Justin M. Keyes
2017-05-30 01:25:25 +02:00
parent f83d733318
commit 698ec9eb6e
4 changed files with 27 additions and 7 deletions

View File

@@ -141,7 +141,9 @@ void mch_exit(int r) FUNC_ATTR_NORETURN
ui_flush();
ml_close_all(true); // remove all memfiles
event_teardown();
if (!event_teardown() && r == 0) {
r = 1; // Exit with error if main_loop did not teardown gracefully.
}
stream_set_blocking(input_global_fd(), true); // normalize stream (#2598)
#ifdef EXITFREE