Changeset 9565a093f9fce8aa15e54990e9fd9d3086b41b08

Show
Ignore:
Timestamp:
05/29/08 23:47:17 (3 months ago)
Author:
Pierre d'Herbemont <pdherbemont@videolan.org>
git-committer:
Pierre d'Herbemont <pdherbemont@videolan.org> 1212097637 +0200
git-parent:

[003c1216d89735a273e075c66a3af0f7655a54ae]

git-author:
Pierre d'Herbemont <pdherbemont@videolan.org> 1212097637 +0200
Message:

signals: Workaround the fact that sigwait() isn't a pthread cancellation point on Mac OS X.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • modules/control/signals.c

    r0efa83a r9565a09  
    7979 
    8080    pthread_cancel (p_sys->thread); 
     81#ifdef __APPLE__ 
     82   /* In Mac OS X up to 10.5 sigwait (among others) is not a pthread 
     83    * cancellation point, so we throw a dummy quit signal to end 
     84    * sigwait() in the sigth thread */ 
     85    pthread_kill (p_sys->thread, SIGQUIT); 
     86# endif 
    8187    pthread_join (p_sys->thread, NULL); 
    8288    free (p_sys); 
     
    102108 
    103109        sigwait (&set, &signum); 
     110 
     111#ifdef __APPLE__ 
     112        /* In Mac OS X up to 10.5 sigwait (among others) is not a pthread 
     113         * cancellation point */ 
     114        pthread_testcancel(); 
     115#endif 
    104116 
    105117        vlc_object_lock (obj);