1#include "pthread_impl.h" 2 3void __lock(volatile int *l) 4{ 5 if (libc.threads_minus_1) 6 while (a_swap(l, 1)) __wait(l, l+1, 1, 1); 7} 8 9void __unlock(volatile int *l) 10{ 11 if (l[0]) { 12 a_store(l, 0); 13 if (l[1]) __wake(l, 1, 1); 14 } 15} 16