code: 9ferno

ref: 3521573f2f6de16d6063b870c338e5c42fbab3a6
dir: /appl/lib/lock.b/

View raw version
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()
{
}