| #include "pthread_impl.h" | |
| #include <threads.h> | |
| int mtx_lock(mtx_t* m) { | |
| if (m->_m_type == PTHREAD_MUTEX_NORMAL && !a_cas(&m->_m_lock, 0, EBUSY)) | |
| return thrd_success; | |
| /* Calling mtx_timedlock with a null pointer is an extension. | |
| * It is convenient, here to avoid duplication of the logic | |
| * for return values. */ | |
| return mtx_timedlock(m, 0); | |
| } |