25 #if !defined(__APPLE__) && !defined(ANDROID) 27 #define SIPX_USE_NATIVE_PTHREADS 33 #ifdef SIPX_USE_NATIVE_PTHREADS // [ 35 #define pt_mutex_t pthread_mutex_t 36 #if defined(__linux__) && !defined(PTHREAD_MUTEX_RECURSIVE) 37 # define PTHREAD_MUTEX_RECURSIVE PTHREAD_MUTEX_RECURSIVE_NP 42 static inline int pt_mutex_init(pthread_mutex_t *mutex)
44 pthread_mutexattr_t a;
45 pthread_mutexattr_init(&a);
46 pthread_mutexattr_settype(&a,PTHREAD_MUTEX_RECURSIVE);
47 return pthread_mutex_init(mutex, &a);
50 #define pt_mutex_lock(mutex) pthread_mutex_lock((mutex)) 51 #define pt_mutex_timedlock(mutex, timeout) pthread_mutex_timedlock((mutex), (timeout)) 52 #define pt_mutex_trylock(mutex) pthread_mutex_trylock((mutex)) 53 #define pt_mutex_unlock(mutex) pthread_mutex_unlock((mutex)) 54 #define pt_mutex_destroy(mutex) pthread_mutex_destroy((mutex)) 57 #else // SIPX_USE_NATIVE_PTHREADS ][ 70 typedef struct pt_mutex {
73 pthread_mutex_t mutex;
95 #endif // SIPX_USE_NATIVE_PTHREADS ] #define pt_mutex_t
Definition: pt_mutex.h:35
#define pt_mutex_lock(mutex)
Definition: pt_mutex.h:50
#define pt_mutex_trylock(mutex)
Definition: pt_mutex.h:52
#define pt_mutex_unlock(mutex)
Definition: pt_mutex.h:53
#define pt_mutex_timedlock(mutex, timeout)
Definition: pt_mutex.h:51
#define pt_mutex_destroy(mutex)
Definition: pt_mutex.h:54