Does static ctor/dtor of struct behave differently in 2.067-b2?

amber via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Mar 1 13:42:47 PST 2015


On Saturday, 28 February 2015 at 03:26:17 UTC, ketmar wrote:
> On Fri, 27 Feb 2015 23:58:16 +0000, amber wrote:
>
>> On Friday, 27 February 2015 at 23:50:51 UTC, amber wrote:
>>> Hi All,
>> [snip]
>>> Thanks, amber
>> 
>> [edited subject]
>> 
>> Sorry I should add that I'm talking about static ctor/dtor of 
>> struct.
>> 
>> The bug I see with 2.067-b2 is this:
>> 
>> 1. static this() {} called and static fields of struct are 
>> initialised
>> 2. app runs, static fields are initialised.
>> 3. static ~this() {} called and static fields of struct are NOT
>> initialised.
>> 
>> 
>> In step 3 with 2.066.1 all the static fields of struct are 
>> still
>> initialised, as expected, and my app shuts down cleanly.
>
> is your struct GC-allocated? and can you provide dustmited code 
> or
> something we can play with?

Hi ketmar, thanks for replying.

I think I have figured out what was happening.

DMD 2.067 spins up 5 threads when running the unittests and DMD 
2.066.1 only uses one thread. This change exposed a bug in the 
static ctor which I've now fixed.

Thanks,
amber


More information about the Digitalmars-d-learn mailing list