On 3/3/15 9:22 AM, Kagamin wrote:
On Saturday, 28 February 2015 at 04:18:38 UTC, ketmar wrote:
His case is not @safe, so we can ignore that problem.
the compiler tends to disagree:
=== test.d ===
int myglobal;
class A {
~this () @safe { if (myglobal == 42) assert(0); }
}
void main () {
auto a = new A;
}
======
dmd -w -c -o- test.d
wow! no warnings, no errors!
And what's the problem?
This:
void main()
{
myglobal = 42;
spawnThread((){myglobal = 0; auto a = new A; a = null; while(1){}});
// trigger assert in A.dtor.
int[] mem;
while(1)
{
mem.length += 10000;
}
}
-Steve