ref: fe52f7e86eea5e5f1b2066e1e33cb90471999769
dir: /appl/lib/lock.b/
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() { }