code: 9ferno

ref: 5f06f20aeb34618e7f059aa21c6432972121b972
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()
{
}