commit fad1022cafd971c59e28ba34ec58d4866d2d5297
parent 2a12faaec18115bf057427834832ff20ccb3ffd4
Author: zeertzjq <zeertzjq@outlook.com>
Date: Sat, 8 Oct 2022 20:17:53 +0800
fix(tui): resume main thread if suspending isn't implemented (#20523)
Not doing anything is better than hanging.
Diffstat:
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c
@@ -1413,13 +1413,16 @@ static void suspend_event(void **argv)
static void tui_suspend(UI *ui)
{
-#ifdef UNIX
TUIData *data = ui->data;
+#ifdef UNIX
// kill(0, SIGTSTP) won't stop the UI thread, so we must poll for SIGCONT
// before continuing. This is done in another callback to avoid
// loop_poll_events recursion
multiqueue_put_event(data->loop->fast_events,
event_create(suspend_event, 1, ui));
+#else
+ // Resume the main thread as suspending isn't implemented.
+ CONTINUE(data->bridge);
#endif
}