Lines Matching refs:mutex
296 int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr) in pthread_mutex_init() argument
302 if (!mutex) in pthread_mutex_init()
308 mutex->attr = pthread_default_mutexattr; in pthread_mutex_init()
310 mutex->attr = *attr; in pthread_mutex_init()
313 result = rt_mutex_init(&(mutex->lock), name, RT_IPC_FLAG_PRIO); in pthread_mutex_init()
318 rt_object_detach(&(mutex->lock.parent.parent)); in pthread_mutex_init()
319 mutex->lock.parent.parent.type = RT_Object_Class_Mutex; in pthread_mutex_init()
350 int pthread_mutex_destroy(pthread_mutex_t *mutex) in pthread_mutex_destroy() argument
352 if (!mutex || mutex->attr == -1) in pthread_mutex_destroy()
356 if (mutex->lock.owner != RT_NULL) in pthread_mutex_destroy()
359 rt_memset(mutex, 0, sizeof(pthread_mutex_t)); in pthread_mutex_destroy()
360 mutex->attr = -1; in pthread_mutex_destroy()
394 int pthread_mutex_lock(pthread_mutex_t *mutex) in pthread_mutex_lock() argument
399 if (!mutex) in pthread_mutex_lock()
402 if (mutex->attr == -1) in pthread_mutex_lock()
405 pthread_mutex_init(mutex, RT_NULL); in pthread_mutex_lock()
408 mtype = mutex->attr & MUTEXATTR_TYPE_MASK; in pthread_mutex_lock()
410 if (mutex->lock.owner == rt_thread_self() && in pthread_mutex_lock()
419 result = rt_mutex_take(&(mutex->lock), RT_WAITING_FOREVER); in pthread_mutex_lock()
454 int pthread_mutex_unlock(pthread_mutex_t *mutex) in pthread_mutex_unlock() argument
458 if (!mutex) in pthread_mutex_unlock()
460 if (mutex->attr == -1) in pthread_mutex_unlock()
463 pthread_mutex_init(mutex, RT_NULL); in pthread_mutex_unlock()
466 if (mutex->lock.owner != rt_thread_self()) in pthread_mutex_unlock()
469 mtype = mutex->attr & MUTEXATTR_TYPE_MASK; in pthread_mutex_unlock()
476 if (mutex->lock.owner == RT_NULL) in pthread_mutex_unlock()
480 result = rt_mutex_release(&(mutex->lock)); in pthread_mutex_unlock()
513 int pthread_mutex_trylock(pthread_mutex_t *mutex) in pthread_mutex_trylock() argument
518 if (!mutex) in pthread_mutex_trylock()
520 if (mutex->attr == -1) in pthread_mutex_trylock()
523 pthread_mutex_init(mutex, RT_NULL); in pthread_mutex_trylock()
526 mtype = mutex->attr & MUTEXATTR_TYPE_MASK; in pthread_mutex_trylock()
528 if (mutex->lock.owner == rt_thread_self() && in pthread_mutex_trylock()
537 result = rt_mutex_take(&(mutex->lock), 0); in pthread_mutex_trylock()
568 int pthread_mutex_getprioceiling(const pthread_mutex_t *mutex, int *prioceiling) in pthread_mutex_getprioceiling() argument
570 return pthread_mutexattr_getprioceiling(&mutex->attr, prioceiling); in pthread_mutex_getprioceiling()
574 int pthread_mutex_setprioceiling(pthread_mutex_t *mutex, int prioceiling, int *old_ceiling) in pthread_mutex_setprioceiling() argument
576 *old_ceiling = pthread_mutexattr_getprioceiling(&mutex->attr, old_ceiling); in pthread_mutex_setprioceiling()
582 return pthread_mutexattr_setprioceiling(&mutex->attr, prioceiling); in pthread_mutex_setprioceiling()