Thread overview
__gshared and static constructors
Jan 05, 2012
Mike Parker
Jan 05, 2012
Jacob Carlborg
January 04, 2012
Hi,

When using __gshared for variables at module level, it is my understanding that they should be initialized in the shared static this constructor. My question is: When having __gshared variables inside classes, where should I initialize these? Do classes have a shared static this constructor?

- Alex
January 05, 2012
On 1/5/2012 4:14 AM, Alex Rønne Petersen wrote:
> Hi,
>
> When using __gshared for variables at module level, it is my
> understanding that they should be initialized in the shared static this
> constructor. My question is: When having __gshared variables inside
> classes, where should I initialize these? Do classes have a shared
> static this constructor?
>
> - Alex

Yes. You can also use a module constructor, since all class members are be visible to the module.
January 05, 2012
On 2012-01-04 20:14, Alex Rønne Petersen wrote:
> Hi,
>
> When using __gshared for variables at module level, it is my
> understanding that they should be initialized in the shared static this
> constructor. My question is: When having __gshared variables inside
> classes, where should I initialize these? Do classes have a shared
> static this constructor?
>
> - Alex

I don't think there's much difference between a module constructor and a static class constructor. I think that second is just scoped in the class.

-- 
/Jacob Carlborg