Lines Matching refs:mutex
253 objc_mutex_t mutex; in objc_mutex_allocate() local
256 if (! (mutex = (objc_mutex_t)objc_malloc (sizeof (struct objc_mutex)))) in objc_mutex_allocate()
260 if (__gthread_objc_mutex_allocate (mutex)) in objc_mutex_allocate()
263 objc_free (mutex); in objc_mutex_allocate()
268 mutex->owner = NULL; in objc_mutex_allocate()
269 mutex->depth = 0; in objc_mutex_allocate()
270 return mutex; in objc_mutex_allocate()
279 objc_mutex_deallocate (objc_mutex_t mutex) in objc_mutex_deallocate() argument
284 if (! mutex) in objc_mutex_deallocate()
288 depth = objc_mutex_lock (mutex); in objc_mutex_deallocate()
291 if (__gthread_objc_mutex_deallocate (mutex)) in objc_mutex_deallocate()
295 objc_free (mutex); in objc_mutex_deallocate()
306 objc_mutex_lock (objc_mutex_t mutex) in objc_mutex_lock() argument
312 if (! mutex) in objc_mutex_lock()
317 if (mutex->owner == thread_id) in objc_mutex_lock()
318 return ++mutex->depth; in objc_mutex_lock()
321 status = __gthread_objc_mutex_lock (mutex); in objc_mutex_lock()
328 mutex->owner = thread_id; in objc_mutex_lock()
329 return mutex->depth = 1; in objc_mutex_lock()
336 objc_mutex_trylock (objc_mutex_t mutex) in objc_mutex_trylock() argument
342 if (! mutex) in objc_mutex_trylock()
347 if (mutex->owner == thread_id) in objc_mutex_trylock()
348 return ++mutex->depth; in objc_mutex_trylock()
351 status = __gthread_objc_mutex_trylock (mutex); in objc_mutex_trylock()
358 mutex->owner = thread_id; in objc_mutex_trylock()
359 return mutex->depth = 1; in objc_mutex_trylock()
368 objc_mutex_unlock (objc_mutex_t mutex) in objc_mutex_unlock() argument
374 if (! mutex) in objc_mutex_unlock()
379 if (mutex->owner != thread_id) in objc_mutex_unlock()
383 if (mutex->depth > 1) in objc_mutex_unlock()
384 return --mutex->depth; in objc_mutex_unlock()
387 mutex->depth = 0; in objc_mutex_unlock()
388 mutex->owner = NULL; in objc_mutex_unlock()
391 status = __gthread_objc_mutex_unlock (mutex); in objc_mutex_unlock()
456 objc_condition_wait (objc_condition_t condition, objc_mutex_t mutex) in objc_condition_wait() argument
461 if (! mutex || ! condition) in objc_condition_wait()
466 if (mutex->owner != thread_id) in objc_condition_wait()
470 if (mutex->depth > 1) in objc_condition_wait()
474 mutex->depth = 0; in objc_condition_wait()
475 mutex->owner = (objc_thread_t)NULL; in objc_condition_wait()
478 __gthread_objc_condition_wait (condition, mutex); in objc_condition_wait()
481 mutex->owner = thread_id; in objc_condition_wait()
482 mutex->depth = 1; in objc_condition_wait()