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