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.

Reply via email to