mirror of
https://github.com/neovim/neovim
synced 2025-07-20 12:32:28 +00:00
committed by
Justin M. Keyes
parent
8399f73574
commit
cda119055a
@ -50,22 +50,13 @@ void signal_init(void)
|
|||||||
signal_watcher_init(&main_loop, &shup, NULL);
|
signal_watcher_init(&main_loop, &shup, NULL);
|
||||||
signal_watcher_init(&main_loop, &squit, NULL);
|
signal_watcher_init(&main_loop, &squit, NULL);
|
||||||
signal_watcher_init(&main_loop, &sterm, NULL);
|
signal_watcher_init(&main_loop, &sterm, NULL);
|
||||||
#ifdef SIGPIPE
|
|
||||||
signal_watcher_start(&spipe, on_signal, SIGPIPE);
|
|
||||||
#endif
|
|
||||||
signal_watcher_start(&shup, on_signal, SIGHUP);
|
|
||||||
#ifdef SIGQUIT
|
|
||||||
signal_watcher_start(&squit, on_signal, SIGQUIT);
|
|
||||||
#endif
|
|
||||||
signal_watcher_start(&sterm, on_signal, SIGTERM);
|
|
||||||
#ifdef SIGPWR
|
#ifdef SIGPWR
|
||||||
signal_watcher_init(&main_loop, &spwr, NULL);
|
signal_watcher_init(&main_loop, &spwr, NULL);
|
||||||
signal_watcher_start(&spwr, on_signal, SIGPWR);
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef SIGUSR1
|
#ifdef SIGUSR1
|
||||||
signal_watcher_init(&main_loop, &susr1, NULL);
|
signal_watcher_init(&main_loop, &susr1, NULL);
|
||||||
signal_watcher_start(&susr1, on_signal, SIGUSR1);
|
|
||||||
#endif
|
#endif
|
||||||
|
signal_start();
|
||||||
}
|
}
|
||||||
|
|
||||||
void signal_teardown(void)
|
void signal_teardown(void)
|
||||||
@ -83,11 +74,33 @@ void signal_teardown(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void signal_start(void)
|
||||||
|
{
|
||||||
|
#ifdef SIGPIPE
|
||||||
|
signal_watcher_start(&spipe, on_signal, SIGPIPE);
|
||||||
|
#endif
|
||||||
|
signal_watcher_start(&shup, on_signal, SIGHUP);
|
||||||
|
#ifdef SIGQUIT
|
||||||
|
signal_watcher_start(&squit, on_signal, SIGQUIT);
|
||||||
|
#endif
|
||||||
|
signal_watcher_start(&sterm, on_signal, SIGTERM);
|
||||||
|
#ifdef SIGPWR
|
||||||
|
signal_watcher_start(&spwr, on_signal, SIGPWR);
|
||||||
|
#endif
|
||||||
|
#ifdef SIGUSR1
|
||||||
|
signal_watcher_start(&susr1, on_signal, SIGUSR1);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void signal_stop(void)
|
void signal_stop(void)
|
||||||
{
|
{
|
||||||
|
#ifdef SIGPIPE
|
||||||
signal_watcher_stop(&spipe);
|
signal_watcher_stop(&spipe);
|
||||||
|
#endif
|
||||||
signal_watcher_stop(&shup);
|
signal_watcher_stop(&shup);
|
||||||
|
#ifdef SIGQUIT
|
||||||
signal_watcher_stop(&squit);
|
signal_watcher_stop(&squit);
|
||||||
|
#endif
|
||||||
signal_watcher_stop(&sterm);
|
signal_watcher_stop(&sterm);
|
||||||
#ifdef SIGPWR
|
#ifdef SIGPWR
|
||||||
signal_watcher_stop(&spwr);
|
signal_watcher_stop(&spwr);
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
#include "nvim/event/signal.h"
|
#include "nvim/event/signal.h"
|
||||||
#include "nvim/os/input.h"
|
#include "nvim/os/input.h"
|
||||||
#include "nvim/os/os.h"
|
#include "nvim/os/os.h"
|
||||||
|
#include "nvim/os/signal.h"
|
||||||
#include "nvim/os/tty.h"
|
#include "nvim/os/tty.h"
|
||||||
#include "nvim/strings.h"
|
#include "nvim/strings.h"
|
||||||
#include "nvim/syntax.h"
|
#include "nvim/syntax.h"
|
||||||
@ -1232,7 +1233,9 @@ static void suspend_event(void **argv)
|
|||||||
tui_terminal_stop(ui);
|
tui_terminal_stop(ui);
|
||||||
data->cont_received = false;
|
data->cont_received = false;
|
||||||
stream_set_blocking(input_global_fd(), true); // normalize stream (#2598)
|
stream_set_blocking(input_global_fd(), true); // normalize stream (#2598)
|
||||||
|
signal_stop();
|
||||||
kill(0, SIGTSTP);
|
kill(0, SIGTSTP);
|
||||||
|
signal_start();
|
||||||
while (!data->cont_received) {
|
while (!data->cont_received) {
|
||||||
// poll the event loop until SIGCONT is received
|
// poll the event loop until SIGCONT is received
|
||||||
loop_poll_events(data->loop, -1);
|
loop_poll_events(data->loop, -1);
|
||||||
|
Reference in New Issue
Block a user