1*c9945492SAndroid Build Coastguard Worker #include "pthread_impl.h" 2*c9945492SAndroid Build Coastguard Worker #include <threads.h> 3*c9945492SAndroid Build Coastguard Worker mtx_trylock(mtx_t * m)4*c9945492SAndroid Build Coastguard Workerint mtx_trylock(mtx_t *m) 5*c9945492SAndroid Build Coastguard Worker { 6*c9945492SAndroid Build Coastguard Worker if (m->_m_type == PTHREAD_MUTEX_NORMAL) 7*c9945492SAndroid Build Coastguard Worker return (a_cas(&m->_m_lock, 0, EBUSY) & EBUSY) ? thrd_busy : thrd_success; 8*c9945492SAndroid Build Coastguard Worker 9*c9945492SAndroid Build Coastguard Worker int ret = __pthread_mutex_trylock((pthread_mutex_t *)m); 10*c9945492SAndroid Build Coastguard Worker switch (ret) { 11*c9945492SAndroid Build Coastguard Worker default: return thrd_error; 12*c9945492SAndroid Build Coastguard Worker case 0: return thrd_success; 13*c9945492SAndroid Build Coastguard Worker case EBUSY: return thrd_busy; 14*c9945492SAndroid Build Coastguard Worker } 15*c9945492SAndroid Build Coastguard Worker } 16