So, I thought I sort of understood "shared" and now I think I don't.
If I have a class: class foo { int x; static int y; shared static int z; } So x is one instance per class and is thread-local? y is one instance per thread? z is one instance per application, i.e., global? If that's true (and I realize it might not be), and I want to initialize these variables in constructors, how does that work? I think class foo { ...(as before) this() { x = 2; } // ok static this() { y = 3; } // is this called once per thread? shared static this() { z = 3;} // also, okay, called before main } but I don't understand what happens with threads and the "static this" constructor. How/when are the thread-local copies constructed? How do you initialize/construct the thread-local static data? Thanks! Adam