ref: 4da6b64bc65069fa1621aa8c1bf155cf8cc9b00a
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) ;; }