From e1c2b18a4dfbf07e32730ac1fc3a6ed153099ca5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Sat, 24 Jul 2010 13:44:27 +0300 Subject: [PATCH] After 3 seconds, allow SIGINT to kill the process Older versions did that too, and it can be quite useful when debugging. --- bin/vlc.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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) -- 2.39.2