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