Searched refs:mutex (Results 1 - 25 of 2027) sorted by relevance

1234567891011>>

/freebsd-11-stable/contrib/gcclibs/libgomp/config/linux/
H A Dmutex.c28 /* 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 Dmutex.h28 /* 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 Dbar.h35 #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 Dmutex_destructor.cpp9 // 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 Dmutex.h28 /* 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 Dmutex.c40 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 Dgthr-win32.c66 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 Dgthr-rtems.h64 /* 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 Dgthr-vxworks.h54 __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 Dgthr-single.h32 /* 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 Dgthr-win32.h59 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 Dgthr-nks.h173 /* 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 Dgthr-solaris.h50 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 Dmtxratio.sh2 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 Dthread_mutex.c25 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 Dglobal_mutex.c46 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 Dxray_powerpc64.inc14 #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 Dmutex.h57 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 Dplockstat.d33 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 Dapr_thread_mutex.h40 /** 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 Dapr_proc_mutex.h56 /** 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 Dapr_global_mutex.h46 /** 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 Dsvn_mutex.h41 /** 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 Dmutex.c67 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 Dt_barrier.c45 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...]

Completed in 322 milliseconds

1234567891011>>