shithub: purgatorio

ref: 60ecd07e6d3f5786c8723dc9172c35d580fdadc8
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()
{
}