/freebsd-11-stable/contrib/gcclibs/libgomp/config/linux/ |
H A D | mutex.c | 28 /* This is a Linux specific implementation of a mutex synchronization 37 gomp_mutex_lock_slow (gomp_mutex_t *mutex) argument 41 int oldval = __sync_val_compare_and_swap (mutex, 1, 2); 43 futex_wait (mutex, 2); 45 while (!__sync_bool_compare_and_swap (mutex, 0, 2)); 49 gomp_mutex_unlock_slow (gomp_mutex_t *mutex) argument 51 futex_wake (mutex, 1);
|
H A D | mutex.h | 28 /* This is a Linux specific implementation of a mutex synchronization 39 static inline void gomp_mutex_init (gomp_mutex_t *mutex) argument 41 *mutex = 0; 44 extern void gomp_mutex_lock_slow (gomp_mutex_t *mutex); 45 static inline void gomp_mutex_lock (gomp_mutex_t *mutex) argument 47 if (!__sync_bool_compare_and_swap (mutex, 0, 1)) 48 gomp_mutex_lock_slow (mutex); 51 extern void gomp_mutex_unlock_slow (gomp_mutex_t *mutex); 52 static inline void gomp_mutex_unlock (gomp_mutex_t *mutex) argument 54 int val = __sync_lock_test_and_set (mutex, 59 gomp_mutex_destroy(gomp_mutex_t *mutex) argument [all...] |
H A D | bar.h | 35 #include "mutex.h" 39 gomp_mutex_t mutex; member in struct:__anon1449 47 gomp_mutex_init (&bar->mutex); 55 gomp_mutex_lock (&bar->mutex); 57 gomp_mutex_unlock (&bar->mutex); 63 gomp_mutex_lock (&bar->mutex); 71 gomp_mutex_lock (&bar->mutex);
|
/freebsd-11-stable/contrib/llvm-project/libcxx/src/ |
H A D | mutex_destructor.cpp | 9 // Define ~mutex. 11 // On some platforms ~mutex has been made trivial and the definition is only 15 // that *nothing* sees the non-trivial mutex declaration. For this reason 31 class _LIBCPP_TYPE_VIS mutex class 37 constexpr mutex() = default; 38 mutex(const mutex&) = delete; 39 mutex& operator=(const mutex&) = delete; 40 ~mutex() noexcep [all...] |
/freebsd-11-stable/contrib/gcclibs/libgomp/config/posix/ |
H A D | mutex.h | 28 /* This is the default PTHREADS implementation of a mutex synchronization 40 static inline void gomp_mutex_init (gomp_mutex_t *mutex) argument 42 pthread_mutex_init (mutex, NULL); 45 static inline void gomp_mutex_lock (gomp_mutex_t *mutex) argument 47 pthread_mutex_lock (mutex); 50 static inline void gomp_mutex_unlock (gomp_mutex_t *mutex) argument 52 pthread_mutex_unlock (mutex); 55 static inline void gomp_mutex_destroy (gomp_mutex_t *mutex) argument 57 pthread_mutex_destroy (mutex);
|
/freebsd-11-stable/contrib/subversion/subversion/libsvn_subr/ |
H A D | mutex.c | 40 apr_thread_mutex_t *mutex; member in struct:svn_mutex__t 55 /* always initialize the mutex pointer, even though it is not 61 svn_mutex__t *mutex = apr_pcalloc(result_pool, sizeof(*mutex)); local 65 apr_thread_mutex_create(&mutex->mutex, 69 return svn_error_wrap_apr(status, _("Can't create mutex")); 72 *mutex_p = mutex; 79 svn_mutex__lock(svn_mutex__t *mutex) argument 81 if (mutex) 94 svn_mutex__unlock(svn_mutex__t *mutex, svn_error_t *err) argument 112 svn_mutex__get(svn_mutex__t *mutex) argument [all...] |
/freebsd-11-stable/contrib/gcc/config/i386/ |
H A D | gthr-win32.c | 66 3. We are currently using a special mutex instead of the Critical 147 __gthr_win32_mutex_init_function (__gthread_mutex_t *mutex) argument 149 mutex->counter = -1; 150 mutex->sema = CreateSemaphore (NULL, 0, 65535, NULL); 154 __gthr_win32_mutex_lock (__gthread_mutex_t *mutex) argument 156 if (InterlockedIncrement (&mutex->counter) == 0 || 157 WaitForSingleObject (mutex->sema, INFINITE) == WAIT_OBJECT_0) 163 InterlockedDecrement (&mutex->counter); 169 __gthr_win32_mutex_trylock (__gthread_mutex_t *mutex) argument 171 if (__GTHR_W32_InterlockedCompareExchange (&mutex 178 __gthr_win32_mutex_unlock(__gthread_mutex_t *mutex) argument 187 __gthr_win32_recursive_mutex_init_function(__gthread_recursive_mutex_t *mutex) argument 196 __gthr_win32_recursive_mutex_lock(__gthread_recursive_mutex_t *mutex) argument 225 __gthr_win32_recursive_mutex_trylock(__gthread_recursive_mutex_t *mutex) argument 242 __gthr_win32_recursive_mutex_unlock(__gthread_recursive_mutex_t *mutex) argument [all...] |
/freebsd-11-stable/contrib/gcc/ |
H A D | gthr-rtems.h | 64 /* mutex support */ 65 extern void rtems_gxx_mutex_init (__gthread_mutex_t *mutex); 66 extern int rtems_gxx_mutex_lock (__gthread_mutex_t *mutex); 67 extern int rtems_gxx_mutex_trylock (__gthread_mutex_t *mutex); 68 extern int rtems_gxx_mutex_unlock (__gthread_mutex_t *mutex); 70 /* recursive mutex support */ 71 extern void rtems_gxx_recursive_mutex_init (__gthread_recursive_mutex_t *mutex); 72 extern int rtems_gxx_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex); 73 extern int rtems_gxx_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex); 74 extern int rtems_gxx_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex); 115 __gthread_mutex_lock(__gthread_mutex_t *mutex) argument 121 __gthread_mutex_trylock(__gthread_mutex_t *mutex) argument 127 __gthread_mutex_unlock(__gthread_mutex_t *mutex) argument 133 __gthread_recursive_mutex_lock(__gthread_recursive_mutex_t *mutex) argument 139 __gthread_recursive_mutex_trylock(__gthread_recursive_mutex_t *mutex) argument 145 __gthread_recursive_mutex_unlock(__gthread_recursive_mutex_t *mutex) argument [all...] |
H A D | gthr-vxworks.h | 54 __gthread_mutex_init_function (__gthread_mutex_t *mutex) argument 56 *mutex = semMCreate (SEM_Q_PRIORITY | SEM_INVERSION_SAFE | SEM_DELETE_SAFE); 60 __gthread_mutex_lock (__gthread_mutex_t *mutex) argument 62 return semTake (*mutex, WAIT_FOREVER); 66 __gthread_mutex_trylock (__gthread_mutex_t *mutex) argument 68 return semTake (*mutex, NO_WAIT); 72 __gthread_mutex_unlock (__gthread_mutex_t *mutex) argument 74 return semGive (*mutex); 78 __gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *mutex) argument 80 __gthread_mutex_init_function (mutex); 84 __gthread_recursive_mutex_lock(__gthread_recursive_mutex_t *mutex) argument 90 __gthread_recursive_mutex_trylock(__gthread_recursive_mutex_t *mutex) argument 96 __gthread_recursive_mutex_unlock(__gthread_recursive_mutex_t *mutex) argument [all...] |
H A D | gthr-single.h | 32 /* Just provide compatibility for mutex handling. */ 133 /* Backend mutex functions */ 135 /* Allocate a mutex. */ 137 __gthread_objc_mutex_allocate (objc_mutex_t UNUSED(mutex)) 142 /* Deallocate a mutex. */ 144 __gthread_objc_mutex_deallocate (objc_mutex_t UNUSED(mutex)) 149 /* Grab a lock on a mutex. */ 151 __gthread_objc_mutex_lock (objc_mutex_t UNUSED(mutex)) 157 /* Try to grab a lock on a mutex. */ 159 __gthread_objc_mutex_trylock (objc_mutex_t UNUSED(mutex)) 237 __gthread_recursive_mutex_lock(__gthread_recursive_mutex_t *mutex) argument 243 __gthread_recursive_mutex_trylock(__gthread_recursive_mutex_t *mutex) argument 249 __gthread_recursive_mutex_unlock(__gthread_recursive_mutex_t *mutex) argument [all...] |
H A D | gthr-win32.h | 59 3. We are currently using a special mutex instead of the Critical 232 /* Backend mutex functions */ 234 /* Allocate a mutex. */ 236 __gthread_objc_mutex_allocate (objc_mutex_t mutex) argument 238 if ((mutex->backend = (void *) CreateMutex (NULL, 0, NULL)) == NULL) 244 /* Deallocate a mutex. */ 246 __gthread_objc_mutex_deallocate (objc_mutex_t mutex) argument 248 CloseHandle ((HANDLE) (mutex->backend)); 252 /* Grab a lock on a mutex. */ 254 __gthread_objc_mutex_lock (objc_mutex_t mutex) argument 267 __gthread_objc_mutex_trylock(objc_mutex_t mutex) argument 280 __gthread_objc_mutex_unlock(objc_mutex_t mutex) argument 308 __gthread_objc_condition_wait(objc_condition_t condition, objc_mutex_t mutex) argument 461 __gthread_mutex_init_function(__gthread_mutex_t *mutex) argument 467 __gthread_mutex_lock(__gthread_mutex_t *mutex) argument 476 __gthread_mutex_trylock(__gthread_mutex_t *mutex) argument 485 __gthread_mutex_unlock(__gthread_mutex_t *mutex) argument 494 __gthread_recursive_mutex_init_function(__gthread_recursive_mutex_t *mutex) argument 500 __gthread_recursive_mutex_lock(__gthread_recursive_mutex_t *mutex) argument 509 __gthread_recursive_mutex_trylock(__gthread_recursive_mutex_t *mutex) argument 518 __gthread_recursive_mutex_unlock(__gthread_recursive_mutex_t *mutex) argument 611 __gthread_mutex_init_function(__gthread_mutex_t *mutex) argument 618 __gthread_mutex_lock(__gthread_mutex_t *mutex) argument 639 __gthread_mutex_trylock(__gthread_mutex_t *mutex) argument 654 __gthread_mutex_unlock(__gthread_mutex_t *mutex) argument 665 __gthread_recursive_mutex_init_function(__gthread_recursive_mutex_t *mutex) argument 674 __gthread_recursive_mutex_lock(__gthread_recursive_mutex_t *mutex) argument 706 __gthread_recursive_mutex_trylock(__gthread_recursive_mutex_t *mutex) argument 725 __gthread_recursive_mutex_unlock(__gthread_recursive_mutex_t *mutex) argument [all...] |
H A D | gthr-nks.h | 173 /* Backend mutex functions */ 175 /* Allocate a mutex. */ 177 __gthread_objc_mutex_allocate (objc_mutex_t mutex) argument 181 if ((mutex->backend = NXMutexAlloc (0, 0, &info)) == NULL) 186 /* Deallocate a mutex. */ 188 __gthread_objc_mutex_deallocate (objc_mutex_t mutex) argument 190 while (NXMutexIsOwned ((NXMutex_t *)mutex->backend)) 191 NXUnlock ((NXMutex_t *)mutex->backend); 192 if (NXMutexFree ((NXMutex_t *)mutex->backend) != 0) 194 mutex 200 __gthread_objc_mutex_lock(objc_mutex_t mutex) argument 207 __gthread_objc_mutex_trylock(objc_mutex_t mutex) argument 216 __gthread_objc_mutex_unlock(objc_mutex_t mutex) argument 246 __gthread_objc_condition_wait(objc_condition_t condition, objc_mutex_t mutex) argument 337 __gthread_mutex_init_function(__gthread_mutex_t *mutex) argument 345 __gthread_mutex_lock(__gthread_mutex_t *mutex) argument 351 __gthread_mutex_trylock(__gthread_mutex_t *mutex) argument 359 __gthread_mutex_unlock(__gthread_mutex_t *mutex) argument 365 __gthread_recursive_mutex_init_function(__gthread_recursive_mutex_t *mutex) argument 373 __gthread_recursive_mutex_lock(__gthread_recursive_mutex_t *mutex) argument 379 __gthread_recursive_mutex_trylock(__gthread_recursive_mutex_t *mutex) argument 387 __gthread_recursive_mutex_unlock(__gthread_recursive_mutex_t *mutex) argument [all...] |
H A D | gthr-solaris.h | 50 mutex_t mutex; member in struct:__anon1339 293 /* Backend mutex functions */ 295 /* Allocate a mutex. */ 297 __gthread_objc_mutex_allocate (objc_mutex_t mutex) argument 300 && __gthrw_(mutex_init) ((mutex_t *) (&(mutex->backend)), USYNC_THREAD, 0)) 306 /* Deallocate a mutex. */ 308 __gthread_objc_mutex_deallocate (objc_mutex_t mutex) argument 311 __gthrw_(mutex_destroy) ((mutex_t *) (&(mutex->backend))); 316 /* Grab a lock on a mutex. */ 318 __gthread_objc_mutex_lock (objc_mutex_t mutex) argument 329 __gthread_objc_mutex_trylock(objc_mutex_t mutex) argument 340 __gthread_objc_mutex_unlock(objc_mutex_t mutex) argument 374 __gthread_objc_condition_wait(objc_condition_t condition, objc_mutex_t mutex) argument 465 __gthread_mutex_lock(__gthread_mutex_t *mutex) argument 474 __gthread_mutex_trylock(__gthread_mutex_t *mutex) argument 483 __gthread_mutex_unlock(__gthread_mutex_t *mutex) argument 492 __gthread_recursive_mutex_init_function(__gthread_recursive_mutex_t *mutex) argument 500 __gthread_recursive_mutex_lock(__gthread_recursive_mutex_t *mutex) argument 518 __gthread_recursive_mutex_trylock(__gthread_recursive_mutex_t *mutex) argument 537 __gthread_recursive_mutex_unlock(__gthread_recursive_mutex_t *mutex) argument [all...] |
/freebsd-11-stable/tools/tools/mtxstat/ |
H A D | mtxratio.sh | 2 sysctl debug.mutex.prof.stats | awk '$1 ~ /[0-9]+/ { if ($3 != 0) { hld_prc = $5 / $3 * 100; lck_prc = $6 / $3 * 100 } else { hld_prc = 0; lck_prc = 0 } print $1 " " $2 " " $3 " " $4 " " $5 " " hld_prc " " $6 " " lck_prc " " substr($0, index($0, $7)); next } { print }'
|
/freebsd-11-stable/contrib/apr/locks/unix/ |
H A D | thread_mutex.c | 25 apr_thread_mutex_t *mutex = data; local 28 rv = pthread_mutex_destroy(&mutex->mutex); 37 APR_DECLARE(apr_status_t) apr_thread_mutex_create(apr_thread_mutex_t **mutex, 66 rv = pthread_mutex_init(&new_mutex->mutex, &mattr); 71 rv = pthread_mutex_init(&new_mutex->mutex, NULL); 87 pthread_mutex_destroy(&new_mutex->mutex); 97 *mutex = new_mutex; 101 APR_DECLARE(apr_status_t) apr_thread_mutex_lock(apr_thread_mutex_t *mutex) 105 if (mutex [all...] |
H A D | global_mutex.c | 46 APR_DECLARE(apr_status_t) apr_global_mutex_create(apr_global_mutex_t **mutex, 78 *mutex = m; 83 apr_global_mutex_t **mutex, 89 rv = apr_proc_mutex_child_init(&((*mutex)->proc_mutex), fname, pool); 93 APR_DECLARE(apr_status_t) apr_global_mutex_lock(apr_global_mutex_t *mutex) 98 if (mutex->thread_mutex) { 99 rv = apr_thread_mutex_lock(mutex->thread_mutex); 106 rv = apr_proc_mutex_lock(mutex->proc_mutex); 110 if (mutex->thread_mutex) { 111 (void)apr_thread_mutex_unlock(mutex 220 apr_global_mutex_lockfile(apr_global_mutex_t *mutex) argument 230 apr_global_mutex_name(apr_global_mutex_t *mutex) argument 238 apr_global_mutex_t *mutex = (apr_global_mutex_t *)theglobal_mutex; local [all...] |
/freebsd-11-stable/contrib/llvm-project/compiler-rt/lib/xray/ |
H A D | xray_powerpc64.inc | 14 #include <mutex> 27 static std::mutex M; 28 std::lock_guard<std::mutex> Guard(M);
|
/freebsd-11-stable/contrib/jemalloc/include/jemalloc/internal/ |
H A D | mutex.h | 57 bool malloc_mutex_init(malloc_mutex_t *mutex, const char *name, 59 void malloc_mutex_prefork(tsdn_t *tsdn, malloc_mutex_t *mutex); 60 void malloc_mutex_postfork_parent(tsdn_t *tsdn, malloc_mutex_t *mutex); 61 void malloc_mutex_postfork_child(tsdn_t *tsdn, malloc_mutex_t *mutex); 70 void malloc_mutex_lock(tsdn_t *tsdn, malloc_mutex_t *mutex); 71 void malloc_mutex_unlock(tsdn_t *tsdn, malloc_mutex_t *mutex); 72 void malloc_mutex_assert_owner(tsdn_t *tsdn, malloc_mutex_t *mutex); 73 void malloc_mutex_assert_not_owner(tsdn_t *tsdn, malloc_mutex_t *mutex); 78 malloc_mutex_lock(tsdn_t *tsdn, malloc_mutex_t *mutex) argument 82 witness_assert_not_owner(tsdn, &mutex 99 malloc_mutex_unlock(tsdn_t *tsdn, malloc_mutex_t *mutex) argument 119 malloc_mutex_assert_owner(tsdn_t *tsdn, malloc_mutex_t *mutex) argument 127 malloc_mutex_assert_not_owner(tsdn_t *tsdn, malloc_mutex_t *mutex) argument [all...] |
/freebsd-11-stable/lib/libthr/ |
H A D | plockstat.d | 33 probe mutex__acquire(void *mutex, int rec, int spincount); 34 probe mutex__release(void *mutex, int rec); 35 probe mutex__block(void *mutex); 36 probe mutex__spin(void *mutex); 37 probe mutex__spun(void *mutex, int success, int spincount); 38 probe mutex__blocked(void *mutex, int success); 39 probe mutex__error(void *mutex, int err);
|
/freebsd-11-stable/contrib/apr/include/ |
H A D | apr_thread_mutex.h | 40 /** Opaque thread-local mutex structure */ 53 * Create and initialize a mutex that can be used to synchronize threads. 54 * @param mutex the memory address where the newly created mutex will be 62 * @param pool the pool from which to allocate the mutex. 64 * most optimal mutex based on a given platform's performance characteristics, 67 APR_DECLARE(apr_status_t) apr_thread_mutex_create(apr_thread_mutex_t **mutex, 71 * Acquire the lock for the given mutex. If the mutex is already locked, 73 * @param mutex th 75 APR_DECLARE(apr_status_t) apr_thread_mutex_lock(apr_thread_mutex_t *mutex); variable 84 APR_DECLARE(apr_status_t) apr_thread_mutex_trylock(apr_thread_mutex_t *mutex); variable 101 APR_DECLARE(apr_status_t) apr_thread_mutex_unlock(apr_thread_mutex_t *mutex); variable 107 APR_DECLARE(apr_status_t) apr_thread_mutex_destroy(apr_thread_mutex_t *mutex); variable [all...] |
H A D | apr_proc_mutex.h | 56 /** Opaque structure representing a process mutex. */ 62 * Create and initialize a mutex that can be used to synchronize processes. 63 * @param mutex the memory address where the newly created mutex will be 77 * @param pool the pool from which to allocate the mutex. 82 APR_DECLARE(apr_status_t) apr_proc_mutex_create(apr_proc_mutex_t **mutex, 88 * Re-open a mutex in a child process. 89 * @param mutex The newly re-opened mutex structure. 90 * @param fname A file name to use if the mutex mechanis 107 APR_DECLARE(apr_status_t) apr_proc_mutex_lock(apr_proc_mutex_t *mutex); variable 116 APR_DECLARE(apr_status_t) apr_proc_mutex_trylock(apr_proc_mutex_t *mutex); variable 133 APR_DECLARE(apr_status_t) apr_proc_mutex_unlock(apr_proc_mutex_t *mutex); variable 139 APR_DECLARE(apr_status_t) apr_proc_mutex_destroy(apr_proc_mutex_t *mutex); variable 154 APR_DECLARE(const char *) apr_proc_mutex_lockfile(apr_proc_mutex_t *mutex); variable 161 APR_DECLARE(apr_lockmech_e) apr_proc_mutex_mech(apr_proc_mutex_t *mutex); variable 168 APR_DECLARE(const char *) apr_proc_mutex_name(apr_proc_mutex_t *mutex); variable [all...] |
H A D | apr_global_mutex.h | 46 /** Opaque global mutex structure. */ 52 * Create and initialize a mutex that can be used to synchronize both 57 * @param mutex the memory address where the newly created mutex will be 72 * @param pool the pool from which to allocate the mutex. 76 APR_DECLARE(apr_status_t) apr_global_mutex_create(apr_global_mutex_t **mutex, 82 * Re-open a mutex in a child process. 83 * @param mutex The newly re-opened mutex structure. 84 * @param fname A file name to use if the mutex mechanis 102 APR_DECLARE(apr_status_t) apr_global_mutex_lock(apr_global_mutex_t *mutex); variable 111 APR_DECLARE(apr_status_t) apr_global_mutex_trylock(apr_global_mutex_t *mutex); variable 128 APR_DECLARE(apr_status_t) apr_global_mutex_unlock(apr_global_mutex_t *mutex); variable 134 APR_DECLARE(apr_status_t) apr_global_mutex_destroy(apr_global_mutex_t *mutex); variable 140 APR_DECLARE(const char *) apr_global_mutex_lockfile(apr_global_mutex_t *mutex); variable 147 APR_DECLARE(apr_lockmech_e) apr_global_mutex_mech(apr_global_mutex_t *mutex); variable 154 APR_DECLARE(const char *) apr_global_mutex_name(apr_global_mutex_t *mutex); variable [all...] |
/freebsd-11-stable/contrib/subversion/subversion/include/private/ |
H A D | svn_mutex.h | 41 /** A mutex for synchronization between threads. It may be NULL, in 47 /** Initialize the @a *mutex. If @a mutex_required is TRUE, the mutex will 53 * mutex twice without releasing it in between. Attempts to lock a mutex 60 svn_mutex__init(svn_mutex__t **mutex, 64 /** Acquire the @a mutex, if that has been enabled in svn_mutex__init(). 66 * thread to release the mutex again. Recursive locking are not supported. 72 svn_mutex__lock(svn_mutex__t *mutex); 74 /** Release the @a mutex, previousl [all...] |
/freebsd-11-stable/contrib/jemalloc/src/ |
H A D | mutex.c | 67 JEMALLOC_EXPORT int _pthread_mutex_init_calloc_cb(pthread_mutex_t *mutex, 72 _pthread_mutex_init_calloc_cb(pthread_mutex_t *mutex, argument 77 __libc_interposing[INTERPOS__pthread_mutex_init_calloc_cb])(mutex, 83 malloc_mutex_init(malloc_mutex_t *mutex, const char *name, witness_rank_t rank) argument 88 InitializeSRWLock(&mutex->lock); 90 if (!InitializeCriticalSectionAndSpinCount(&mutex->lock, 95 mutex->lock = 0; 98 mutex->postponed_next = postponed_mutexes; 99 postponed_mutexes = mutex; 101 if (_pthread_mutex_init_calloc_cb(&mutex 123 malloc_mutex_prefork(tsdn_t *tsdn, malloc_mutex_t *mutex) argument 130 malloc_mutex_postfork_parent(tsdn_t *tsdn, malloc_mutex_t *mutex) argument 137 malloc_mutex_postfork_child(tsdn_t *tsdn, malloc_mutex_t *mutex) argument [all...] |
/freebsd-11-stable/contrib/netbsd-tests/lib/libpthread/ |
H A D | t_barrier.c | 45 pthread_mutex_t mutex; variable 59 PTHREAD_REQUIRE(pthread_mutex_lock(&mutex)); 63 PTHREAD_REQUIRE(pthread_mutex_unlock(&mutex)); 79 PTHREAD_REQUIRE(pthread_mutex_init(&mutex, NULL)); 83 PTHREAD_REQUIRE(pthread_mutex_lock(&mutex)); 85 PTHREAD_REQUIRE(pthread_mutex_unlock(&mutex)); 93 PTHREAD_REQUIRE(pthread_mutex_lock(&mutex)); 95 PTHREAD_REQUIRE(pthread_mutex_unlock(&mutex)); 99 PTHREAD_REQUIRE(pthread_mutex_lock(&mutex)); 101 PTHREAD_REQUIRE(pthread_mutex_unlock(&mutex)); [all...] |