On 05/28/2016 10:34 AM, Mike Parker wrote:
On Saturday, 28 May 2016 at 05:30:26 UTC, chmike wrote:
[...]
Is a static const Category c variable a TLS variable ?

Yes. All variables are TLS unless explicitly marked with __gshared or
shared.

I don't think that's true.

----
import core.thread;
import std.stdio;

int m;
const int c;
immutable int i;

void main()
{
    printAddresses();
    new Thread(&printAddresses).start();
}

void printAddresses() { writeln(&m, " ", &c, " ", &i); }
----

Prints (for example):
----
7F554F9E1710 695FF0 695FF4
7F554EDDA5D0 695FF0 695FF4
----

So there are two different `m`s, but the `c`s and `i`s have the same address on both threads. Seems to me that `m` is in TLS, but `c` and `i` are not.

Reply via email to