musl/src/thread/__lock.c
2011-06-14 01:23:42 -04:00

11 lines
307 B
C

#include "pthread_impl.h"
void __lock(volatile int *l)
{
int spins=10000;
/* Do not use futexes because we insist that unlocking is a simple
* assignment to optimize non-pathological code with no contention. */
while (a_xchg(l, 1))
if (spins) spins--, a_spin();
else __syscall(SYS_sched_yield);
}