1 #ifndef JEMALLOC_INTERNAL_MUTEX_STRUCTS_H 2 #define JEMALLOC_INTERNAL_MUTEX_STRUCTS_H 3 4 struct malloc_mutex_s { 5 #ifdef _WIN32 6 # if _WIN32_WINNT >= 0x0600 7 SRWLOCK lock; 8 # else 9 CRITICAL_SECTION lock; 10 # endif 11 #elif (defined(JEMALLOC_OS_UNFAIR_LOCK)) 12 os_unfair_lock lock; 13 #elif (defined(JEMALLOC_OSSPIN)) 14 OSSpinLock lock; 15 #elif (defined(JEMALLOC_MUTEX_INIT_CB)) 16 pthread_mutex_t lock; 17 malloc_mutex_t *postponed_next; 18 #else 19 pthread_mutex_t lock; 20 #endif 21 witness_t witness; 22 }; 23 24 #endif /* JEMALLOC_INTERNAL_MUTEX_STRUCTS_H */ 25