Am 03.03.2013 16:29, schrieb Peter Alexander:
On Sunday, 3 March 2013 at 12:01:10 UTC, Benjamin Thaut wrote:
Is this a bug, or is this intended beahvior? I always believed that
with all the dependency detenction that is done such situation should
not happen.

It's intended behaviour.

Remember that shared static this() is only run once for the whole
program, whereas static this() is run per thread. Using per-thread data
inside something that's run per-program doesn't make a whole lot of sense.

Well this is of course a reduced version of a real issue I'm having. I have thread local stack allocators. Each thread has its own stack allocator and certain parts of my code use these. What happened now is, that I inserted a call into a shared static module constructor which calls a function which in turn uses a thread local stack allocator. The problem is, that the thread local stack allocator module is not fully initialized at that point.

But I think I can work around it by adding a shared static constructor and initialize the thread local stack alloactor for the main thread there.

Kind Regards
Benjamin Thaut

Reply via email to