On Sunday, 31 May 2020 at 16:57:06 UTC, Steven Schveighoffer wrote:

I can't imagine much of druntime working at all without TLS. Indeed, it is a requirement these days.

I believe that's where these roots are being stored.

-Steve

I would really like if druntime could remove its TLS variables as much as possible. TLS is really a complicated solution underneath and druntime makes it even more complicated. It requires a hook in thread creation since the raw TLS specification only applies simple variables that can be initialized using memcpy/memset. Any thread that is created outside the druntime will fail if D supports "complex" TLS variables.

TLS variables are also slower that normal variables since it often requires a system call in order to obtain the variable.

druntime should use stack variables much it can and/or shared variables.

If you ever encounter a TLS variable which is global variable in D, try to see if you can solve it with a stack or shared variable.



Reply via email to