ref: a7c11c4d0a52661a299a90b47d9a68be8e11312f
dir: /lib/thread/spawn+plan9.myr/
use std use sys pkg thread = type tid = uint64 const spawn : (fn : (-> void) -> std.result(tid, byte[:])) ;; const spawn = {fn fn = std.fndup(fn) match sys.rfork(sys.Rfproc | sys.Rfmem | sys.Rfnowait) | 0: fn() std.fnfree(fn) std.exit(0) | -1: std.fnfree(fn) -> `std.Err "unable to spawn thread" | thr: -> `std.Ok (thr : tid) ;; }