1 #define _LOCK_EXTENSION 2 #include "../plan9/sys9.h" 3 #include <lock.h> 4 5 int tas(int*); 6 7 void 8 lock(Lock *lk) 9 { 10 while(tas(&lk->val)) 11 _SLEEP(0); 12 } 13 14 int 15 canlock(Lock *lk) 16 { 17 if(tas(&lk->val)) 18 return 0; 19 return 1; 20 } 21 22 void 23 unlock(Lock *lk) 24 { 25 lk->val = 0; 26 } 27