Ori BernsteinAdd tls hooks to libstd.cc9002e8 years agoHistory
56 lines · 967 B · Text
RawDownload
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 lockvar unlockvar tlsgetvar tlsset /* locks for various parts of libstd */var memlckvar netlckvar envlckvar thrptr /*work around compiler bug: we don't generatesyms 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_}