mirror of
https://github.com/neovim/neovim.git
synced 2025-10-05 17:36:29 +00:00
Add guards for SIGPIPE and SIGQUIT
In some systems the signals SIGPIPE and SIGQUIT are not available.
This commit is contained in:

committed by
Seth Jackson

parent
6d583f8587
commit
67a7b1785c
@@ -32,9 +32,13 @@ void signal_init(void)
|
|||||||
signal_watcher_init(&loop, &shup, NULL);
|
signal_watcher_init(&loop, &shup, NULL);
|
||||||
signal_watcher_init(&loop, &squit, NULL);
|
signal_watcher_init(&loop, &squit, NULL);
|
||||||
signal_watcher_init(&loop, &sterm, NULL);
|
signal_watcher_init(&loop, &sterm, NULL);
|
||||||
|
#ifdef SIGPIPE
|
||||||
signal_watcher_start(&spipe, on_signal, SIGPIPE);
|
signal_watcher_start(&spipe, on_signal, SIGPIPE);
|
||||||
|
#endif
|
||||||
signal_watcher_start(&shup, on_signal, SIGHUP);
|
signal_watcher_start(&shup, on_signal, SIGHUP);
|
||||||
|
#ifdef SIGQUIT
|
||||||
signal_watcher_start(&squit, on_signal, SIGQUIT);
|
signal_watcher_start(&squit, on_signal, SIGQUIT);
|
||||||
|
#endif
|
||||||
signal_watcher_start(&sterm, on_signal, SIGTERM);
|
signal_watcher_start(&sterm, on_signal, SIGTERM);
|
||||||
#ifdef SIGPWR
|
#ifdef SIGPWR
|
||||||
signal_watcher_init(&loop, &spwr, NULL);
|
signal_watcher_init(&loop, &spwr, NULL);
|
||||||
@@ -82,12 +86,16 @@ static char * signal_name(int signum)
|
|||||||
case SIGPWR:
|
case SIGPWR:
|
||||||
return "SIGPWR";
|
return "SIGPWR";
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef SIGPIPE
|
||||||
case SIGPIPE:
|
case SIGPIPE:
|
||||||
return "SIGPIPE";
|
return "SIGPIPE";
|
||||||
|
#endif
|
||||||
case SIGTERM:
|
case SIGTERM:
|
||||||
return "SIGTERM";
|
return "SIGTERM";
|
||||||
|
#ifdef SIGQUIT
|
||||||
case SIGQUIT:
|
case SIGQUIT:
|
||||||
return "SIGQUIT";
|
return "SIGQUIT";
|
||||||
|
#endif
|
||||||
case SIGHUP:
|
case SIGHUP:
|
||||||
return "SIGHUP";
|
return "SIGHUP";
|
||||||
default:
|
default:
|
||||||
@@ -123,11 +131,15 @@ static void on_signal(SignalWatcher *handle, int signum, void *data)
|
|||||||
ml_sync_all(false, false);
|
ml_sync_all(false, false);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef SIGPIPE
|
||||||
case SIGPIPE:
|
case SIGPIPE:
|
||||||
// Ignore
|
// Ignore
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
case SIGTERM:
|
case SIGTERM:
|
||||||
|
#ifdef SIGQUIT
|
||||||
case SIGQUIT:
|
case SIGQUIT:
|
||||||
|
#endif
|
||||||
case SIGHUP:
|
case SIGHUP:
|
||||||
if (!rejecting_deadly) {
|
if (!rejecting_deadly) {
|
||||||
deadly_signal(signum);
|
deadly_signal(signum);
|
||||||
|
Reference in New Issue
Block a user