Changeset d10ea719a3b2a41c372e4557d5cd0c6b863617a8

Show
Ignore:
Timestamp:
08/31/07 21:21:37 (1 year ago)
Author:
Rémi Denis-Courmont <rem@videolan.org>
git-committer:
Rémi Denis-Courmont <rem@videolan.org> 1188588097 +0000
git-parent:

[0b1c15a38655d23327a74c577fc7c1297b3eb84e]

git-author:
Rémi Denis-Courmont <rem@videolan.org> 1188588097 +0000
Message:

Dequeue "dummy" signals

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/vlc.c

    r54668b7 rd10ea71  
    234234static void *SigHandler (void *data) 
    235235{ 
    236     const sigset_t *set = (sigset_t *)data; 
     236    const sigset_t *exitset = (sigset_t *)data; 
     237    sigset_t fullset; 
    237238    time_t abort_time = 0; 
    238239 
     240    pthread_sigmask (SIG_BLOCK, exitset, &fullset); 
     241 
    239242    for (;;) 
    240243    { 
    241244        int i_signal, state; 
    242         (void)sigwait (set, &i_signal); 
     245        (void)sigwait (&fullset, &i_signal); 
    243246 
    244247#ifdef __APPLE__ 
     
    247250        pthread_testcancel(); 
    248251#endif 
     252 
     253        if (!sigismember (exitset, i_signal)) 
     254            continue; /* Ignore "dummy" signals */ 
    249255 
    250256        /* Once a signal has been trapped, the termination sequence will be 
     
    268274        { 
    269275            /* If user asks again more than 2 seconds later, die badly */ 
    270             pthread_sigmask (SIG_UNBLOCK, set, NULL); 
     276            pthread_sigmask (SIG_UNBLOCK, exitset, NULL); 
    271277            fprintf (stderr, "user insisted too much, dying badly\n"); 
    272278            abort ();