xref: /inferno-os/module/lock.m (revision 46439007cf417cbd9ac8049bb4122c890097a0fa)
1*46439007SCharles.ForsythLock: module
2*46439007SCharles.Forsyth{
3*46439007SCharles.Forsyth	PATH:	con "/dis/lib/lock.dis";
4*46439007SCharles.Forsyth
5*46439007SCharles.Forsyth	Semaphore: adt {
6*46439007SCharles.Forsyth		c: chan of int;
7*46439007SCharles.Forsyth		obtain:	fn(nil: self ref Semaphore);
8*46439007SCharles.Forsyth		release: fn(nil: self ref Semaphore);
9*46439007SCharles.Forsyth		new: fn(): ref Semaphore;
10*46439007SCharles.Forsyth	};
11*46439007SCharles.Forsyth
12*46439007SCharles.Forsyth	init: fn();
13*46439007SCharles.Forsyth};
14