Beispiel #1
0
void signal_init(void)
{
#ifndef WIN32
  // Ensure a clean slate by unblocking all signals. For example, if SIGCHLD is
  // blocked, libuv may hang after spawning a subprocess on Linux. #5230
  sigset_t mask;
  sigemptyset(&mask);
  if (pthread_sigmask(SIG_SETMASK, &mask, NULL) != 0) {
    ELOG("Could not unblock signals, nvim might behave strangely.");
  }
#endif

  signal_watcher_init(&main_loop, &spipe, NULL);
  signal_watcher_init(&main_loop, &shup, NULL);
  signal_watcher_init(&main_loop, &squit, 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
  signal_watcher_init(&main_loop, &spwr, NULL);
  signal_watcher_start(&spwr, on_signal, SIGPWR);
#endif
}
Beispiel #2
0
void signal_init(void)
{
  signal_watcher_init(&loop, &spipe, NULL);
  signal_watcher_init(&loop, &shup, NULL);
  signal_watcher_init(&loop, &squit, NULL);
  signal_watcher_init(&loop, &sterm, NULL);
  signal_watcher_start(&spipe, on_signal, SIGPIPE);
  signal_watcher_start(&shup, on_signal, SIGHUP);
  signal_watcher_start(&squit, on_signal, SIGQUIT);
  signal_watcher_start(&sterm, on_signal, SIGTERM);
#ifdef SIGPWR
  signal_watcher_init(&loop, &spwr, NULL);
  signal_watcher_start(&spwr, on_signal, SIGPWR);
#endif
}