void SuiteThreadFunctor::Run() { try { TEST(iFunctor->TryWait() == false); iFunctor->Signal(); TEST(iFunctor->TryWait() == true); iFunctor->CheckCurrentForKill(); iFunctor->Kill(); TEST_THROWS(iFunctor->CheckCurrentForKill(), ThreadKill); TEST_THROWS(iFunctor->Wait(), ThreadKill); TEST_THROWS(iFunctor->TryWait(), ThreadKill); } catch(ThreadKill&) { ASSERT(0); } iSem->Signal(); }