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