Unittest hangs on completion

David Zhang via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Dec 30 17:45:35 PST 2016


On Friday, 30 December 2016 at 22:42:07 UTC, Steven Schveighoffer 
wrote:
> What is actually happening is that the D main function returns. 
> Then the D runtime tears down everything, including joining all 
> threads, running all module static dtors, terminating the GC, 
> etc.
>
> Then it returns to the OS the exit code.
>
> So it's likely somewhere in there that it's hanging.
>
> -Steve

I've tried manually reducing the code to find the problem. This 
is what I've got. I'm not sure how to reduce it further.

class Foo {
     ~this() {
         S* next, current;
         next = current = _foo;
         while (next) {
             next = current.next;
             theAllocator.dispose(current);
         }
     }

     void insert(Range)(Range range) {
         foreach (e; range)
             _foo = theAllocator.make!S(_foo);
     }

     S* _foo;

     struct S { S* next; }
}

unittest {
     auto list = new Foo();

     list.insert([1, 2, 3, 4]);
}



More information about the Digitalmars-d-learn mailing list