shithub: mc

ref: 334ffbc2750c2be18dbbf8dc3ebbe8b22e8a9db3
dir: /lib/thread/hookstd.myr/

View raw version
use std
use sys
use "mutex"
use "tls"

pkg thread =
;;

var memlck
var netlck
var envlck
var stdtls

const __init__ = {
	memlck = mkmtx()
	netlck = mkmtx()
	envlck = mkmtx()
	stdtls = tlsalloc()
	std.__lockinit( \
		(&memlck : void#), \
		(&netlck : void#), \
		(&envlck : void#), \
		{mtx; mtxlock((mtx : mutex#))}, \
		{mtx; mtxunlock((mtx : mutex#))}, \
		{; -> tlsget(stdtls)}, \
		{val; tlsset(stdtls, val)} \
	)
}