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