xref: /third_party/musl/src/thread/pthread_mutex_consistent.c
  • Home
  • History
  • Annotate Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /third_party/musl/src/thread/
1570af302Sopenharmony_ci#include "pthread_impl.h"
2570af302Sopenharmony_ci#include "atomic.h"
3570af302Sopenharmony_ci
4570af302Sopenharmony_ciint pthread_mutex_consistent(pthread_mutex_t *m)
5570af302Sopenharmony_ci{
6570af302Sopenharmony_ci	int old = m->_m_lock;
7570af302Sopenharmony_ci	int own = old & 0x3fffffff;
8570af302Sopenharmony_ci	if (!(m->_m_type & 4) || !own || !(old & 0x40000000))
9570af302Sopenharmony_ci		return EINVAL;
10570af302Sopenharmony_ci	if (own != __pthread_self()->tid)
11570af302Sopenharmony_ci		return EPERM;
12570af302Sopenharmony_ci	a_and(&m->_m_lock, ~0x40000000);
13570af302Sopenharmony_ci	return 0;
14570af302Sopenharmony_ci}
15

Indexes created Thu Nov 07 10:32:03 CST 2024