- int tid, old, own;
- pthread_t self;
-
- if (m->_m_type == PTHREAD_MUTEX_NORMAL)
- return a_cas(&m->_m_lock, 0, EBUSY) & EBUSY;
-
- self = pthread_self();
- tid = self->tid;
-
- if (m->_m_type >= 4) {
- if (!self->robust_list.off)
- __syscall(SYS_set_robust_list,
- &self->robust_list, 3*sizeof(long));
- self->robust_list.off = (char*)&m->_m_lock-(char *)&m->_m_next;
- self->robust_list.pending = &m->_m_next;
- }