- /* We really don't want signals to (literaly) interrupt our blocking I/O
- * system calls. SIGPIPE is especially bad, as it can be caused by remote
- * peers through connected sockets. Generally, we cannot know which signals
- * are handled by the main program. Also, external LibVLC bindings tend not
- * to setup a proper signal mask before invoking LibVLC.
- * Hence, we hereby block all signals, except those for which blocking is
- * undefined, as listed below. Note that SIGKILL and SIGSTOP need not be
- * listed (see the documentation for pthread_sigmask) here. */
- sigfillset (&set);
- sigdelset (&set, SIGFPE);
- sigdelset (&set, SIGILL);
- sigdelset (&set, SIGSEGV);
- sigdelset (&set, SIGBUS);
+ sigemptyset (&set);
+ sigdelset (&set, SIGHUP);
+ sigaddset (&set, SIGINT);
+ sigaddset (&set, SIGQUIT);
+ sigaddset (&set, SIGTERM);
+
+ sigaddset (&set, SIGPIPE); /* We don't want this one, really! */