| OLD | NEW |
| 1 #include "pthread_impl.h" | 1 #include "pthread_impl.h" |
| 2 | 2 |
| 3 static volatile int vmlock[2]; | 3 static volatile int vmlock[2]; |
| 4 | 4 |
| 5 void __vm_wait() | 5 void __vm_wait() { |
| 6 { | 6 int tmp; |
| 7 » int tmp; | 7 while ((tmp = vmlock[0])) |
| 8 » while ((tmp=vmlock[0])) | 8 __wait(vmlock, vmlock + 1, tmp, 1); |
| 9 » » __wait(vmlock, vmlock+1, tmp, 1); | |
| 10 } | 9 } |
| 11 | 10 |
| 12 void __vm_lock() | 11 void __vm_lock() { |
| 13 { | 12 a_inc(vmlock); |
| 14 » a_inc(vmlock); | |
| 15 } | 13 } |
| 16 | 14 |
| 17 void __vm_unlock() | 15 void __vm_unlock() { |
| 18 { | 16 if (a_fetch_add(vmlock, -1) == 1 && vmlock[1]) |
| 19 » if (a_fetch_add(vmlock, -1)==1 && vmlock[1]) | 17 __wake(vmlock, -1, 1); |
| 20 » » __wake(vmlock, -1, 1); | |
| 21 } | 18 } |
| OLD | NEW |