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