virtual void run() { CondVar childCreated; CondVar parentReady; AliveTestThreadPtr t = new AliveTestThread(childCreated, parentReady); t->start(); childCreated.waitForSignal(); test(t->isAlive()); parentReady.signal(); t->join(); test(!t->isAlive()); }