#include #include void* funcToKill(void* ptr){ TThread::SetCancelOn(); cout<<"Starting func"<Sleep(1000); }while(true); } void test(){ TThread *t1 = new TThread("func", funcToKill, 0); t1->Run(); gSystem->Sleep(5000); t1->Kill(); cout<<"Waiting to be canceled"<Sleep(1000); // }while(t1->GetState()!=TThread::kCanceledState); //should work but doesn't }while(t1->GetState()!=TThread::kCancelingState); //shouldn't work but does t1->Run(); t1->Join(); }