ref: 7975eec3e602fd5bc3e93c78f4166259190f2fe9
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() { }