mtx_lock.c raw

   1  #include "pthread_impl.h"
   2  #include <threads.h>
   3  
   4  int mtx_lock(mtx_t *m)
   5  {
   6  	if (m->_m_type == PTHREAD_MUTEX_NORMAL && !a_cas(&m->_m_lock, 0, EBUSY))
   7  		return thrd_success;
   8  	/* Calling mtx_timedlock with a null pointer is an extension.
   9  	 * It is convenient, here to avoid duplication of the logic
  10  	 * for return values. */
  11  	return mtx_timedlock(m, 0);
  12  }
  13