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