blob: 21c85fc0636f71f6eb715459590f78ec4e0aaac5 (
plain) (
blame)
| 1
2
3
4
5
6
7
8
9
10
11
 | #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);
}
 |