ref: e3682d0bb7437dc3cbb6a6fcf8d82806d98c73da
dir: /lib/std/threadhooks.myr/
use "die" pkg std = type thrdata = struct ;; pkglocal var lock : (l : void# -> void) pkglocal var unlock : (l : void# -> void) pkglocal var memlck : void# pkglocal var netlck : void# pkglocal var envlck : void# const __lockinit : ( \ mem : void#, \ net : void#, \ env : void#, \ lck : (l : void# -> void), \ unlck : (l : void# -> void), \ tlsget : (-> thrdata#), \ tlsset : (v : thrdata# -> void) \ -> void) ;; /* thread lock wrapper functions */ var lock var unlock var tlsget var tlsset /* locks for various parts of libstd */ var memlck var netlck var envlck var thrptr /* work around compiler bug: we don't generate syms for the funcs with an initializer */ const __init__ = { lock = {l; } unlock = {l; } tlsget = {; -> thrptr} tlsset = {v; thrptr = v} } const __lockinit = {mem, net, env, lck, unlck, tlsget_, tlset_ memlck = mem netlck = net envlck = env lock = lck unlock = unlck tlsget = tlsget_ tlsget = tlsget_ }