ref: d65589c29941b16a5239f6f2e9c8f6fea5c863a2
dir: /sys/src/ape/lib/ap/amd64/lock.c/
#define _LOCK_EXTENSION #include "../plan9/sys9.h" #include <lock.h> int tas(int*); void lock(Lock *lk) { while(tas(&lk->val)) _SLEEP(0); } int canlock(Lock *lk) { if(tas(&lk->val)) return 0; return 1; } void unlock(Lock *lk) { lk->val = 0; }