// Bugzilla 11309 - std.concurrency: OwnerTerminated message doesn't work
// We need to assure that the thread dtors of parent threads run before the thread dtors of the child threads.
import core.thread, core.sync.semaphore;
import core.stdc.stdio;

__gshared Semaphore sem;

static ~this()
{
    if (sem !is null) sem.notify();
}

void main()
{
    sem = new Semaphore;
    auto thr = new Thread({assert(sem.wait(1.seconds));});
    thr.start();
}
