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