X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_threads.h;h=3770e2fa0f401e7b6f0760e52fa1451c98028f9a;hb=12ade3e3bc975d5426ba4af155b7372c31093b31;hp=8bff2382d65b3e6b8b1b5897ae4c818c41ddabb5;hpb=a160b8589331960e47702e382794d492ee480946;p=vlc diff --git a/include/vlc_threads.h b/include/vlc_threads.h index 8bff2382d6..3770e2fa0f 100644 --- a/include/vlc_threads.h +++ b/include/vlc_threads.h @@ -45,7 +45,14 @@ # include /* _POSIX_SPIN_LOCKS */ # include -# include + +/* Unnamed POSIX semaphores not supported on Mac OS X, use Mach semaphores instead */ +# if defined (__APPLE__) +# include +# include +# else +# include +# endif #endif @@ -103,11 +110,16 @@ typedef pthread_mutex_t vlc_mutex_t; #define VLC_STATIC_MUTEX PTHREAD_MUTEX_INITIALIZER typedef pthread_cond_t vlc_cond_t; #define VLC_STATIC_COND PTHREAD_COND_INITIALIZER -typedef sem_t vlc_sem_t; typedef pthread_rwlock_t vlc_rwlock_t; typedef pthread_key_t vlc_threadvar_t; typedef struct vlc_timer *vlc_timer_t; +#if defined (__APPLE__) +typedef semaphore_t vlc_sem_t; +#else +typedef sem_t vlc_sem_t; +#endif + #elif defined( WIN32 ) #if !defined( UNDER_CE ) typedef HANDLE vlc_thread_t; @@ -206,7 +218,6 @@ VLC_EXPORT( unsigned, vlc_timer_getoverrun, (vlc_timer_t) LIBVLC_USED ); #ifndef LIBVLC_USE_PTHREAD_CANCEL enum { - VLC_DO_CANCEL, VLC_CLEANUP_PUSH, VLC_CLEANUP_POP, }; @@ -431,4 +442,16 @@ class vlc_mutex_locker }; #endif +enum { + VLC_AVCODEC_MUTEX = 0, + VLC_GCRYPT_MUTEX, + VLC_XLIB_MUTEX, + /* Insert new entry HERE */ + VLC_MAX_MUTEX +}; + +VLC_EXPORT( void, vlc_global_mutex, ( unsigned, bool ) ); +#define vlc_global_lock( n ) vlc_global_mutex( n, true ) +#define vlc_global_unlock( n ) vlc_global_mutex( n, false ) + #endif /* !_VLC_THREADS_H */