From: RĂ©mi Denis-Courmont Date: Sat, 24 Jul 2010 10:44:27 +0000 (+0300) Subject: After 3 seconds, allow SIGINT to kill the process X-Git-Tag: 1.2.0-pre1~5687 X-Git-Url: https://git.sesse.net/?p=vlc;a=commitdiff_plain;h=e1c2b18a4dfbf07e32730ac1fc3a6ed153099ca5 After 3 seconds, allow SIGINT to kill the process Older versions did that too, and it can be quite useful when debugging. --- diff --git a/bin/vlc.c b/bin/vlc.c index 40fa96fbca..c8a05bae43 100644 --- a/bin/vlc.c +++ b/bin/vlc.c @@ -74,6 +74,11 @@ static void vlc_kill (void *data) pthread_kill (*ps, SIGTERM); } +static void exit_timeout (int signum) +{ + (void) signum; + signal (SIGINT, SIG_DFL); +} /***************************************************************************** * main: parse command line, start interface and spawn threads. @@ -221,6 +226,15 @@ int main( int i_argc, const char *ppsz_argv[] ) sigwait (&set, &signum); while (signum == SIGCHLD); + /* Restore default signal behaviour after 3 seconds */ + sigemptyset (&set); + sigaddset (&set, SIGINT); + sigaddset (&set, SIGALRM); + signal (SIGINT, SIG_IGN); + signal (SIGALRM, exit_timeout); + pthread_sigmask (SIG_UNBLOCK, &set, NULL); + alarm (3); + /* Cleanup */ out: if (vlc != NULL)