summaryrefslogtreecommitdiff
path: root/src/thread/mtx_lock.c
blob: 5c2415c1acdbc5ee1348da1cf43c71557591d8ab (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
#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);
}