ref: 43de7b8419fa3582af6df803473ef1bde2ce5c23
dir: /appl/lib/lock.b/
implement Lock;
include "sys.m";
sys: Sys;
include "lock.m";
Semaphore.obtain(l: self ref Semaphore)
{
l.c <-= 0;
}
Semaphore.release(l: self ref Semaphore)
{
<-l.c;
}
Semaphore.new(): ref Semaphore
{
l := ref Semaphore;
l.c = chan[1] of int;
return l;
}
init()
{
}