mirror of https://code.videolan.org/videolan/vlc
After 3 seconds, allow SIGINT to kill the process
Older versions did that too, and it can be quite useful when debugging.
This commit is contained in:
parent
de68b12937
commit
e1c2b18a4d
14
bin/vlc.c
14
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)
|
||||
|
|
Loading…
Reference in New Issue