ui_detach: Do not redraw during teardown/exit.

This commit is contained in:
Justin M. Keyes 2016-11-28 01:57:07 +01:00 committed by ZyX
parent d670591887
commit 59f12e7d61
2 changed files with 5 additions and 4 deletions

View File

@ -977,9 +977,7 @@ static void refresh_terminal(Terminal *term)
// event.
static void refresh_timer_cb(TimeWatcher *watcher, void *data)
{
if (exiting) {
// bad things can happen if we redraw when exiting, and there's no need to
// update the buffer.
if (exiting) { // Cannot redraw (requires event loop) during teardown/exit.
goto end;
}
Terminal *term;

View File

@ -258,7 +258,10 @@ void ui_detach_impl(UI *ui)
shift_index++;
}
if (--ui_count) {
if (--ui_count
// During teardown/exit the loop was already destroyed, cannot schedule.
// https://github.com/neovim/neovim/pull/5119#issuecomment-258667046
&& !exiting) {
ui_schedule_refresh();
}
}