Denis Koroskin wrote:
On Wed, 13 May 2009 16:50:25 +0400, downs <[email protected]> wrote:
So .. how will the threadlocal global variables be initialized?
Obviously, they can't be initialized in the static constructor, since
that is only run once.
But if the static constructors are run on every new thread, what about
the shared variables that only need to be initialized once?
For these reasons, I propose two changes:
1) Module constructors are run at thread creation
2) the introduction of _shared module constructors_, who are run before
module constructors, at program startup, to initialize the global shared
variables.
I don't see any other way to handle these issues.
Feedback appreciated.
static this()
{
}
static shared this()
{
}
static shared ~this()
{
}
static ~this()
{
}
(in that order)
?
I think he meant shared first/last:
static shared this(){}
static this(){}//main thread
static this(){}//thread x
...
static ~this() {}//thread x
static ~this() {}// main thread
static shared ~this() {}
...which is (as Kagamin suggested) similar to they way DLLs are
(de)inited on Windows.
vote++ by the way.
L.