17 #include "TCondition.h" 28 fbTerminating(kFALSE),
29 fbTerminateApplication(kFALSE)
31 GO4TRACE((15,
"TGo4ThreadManager::TGo4ThreadManager copy ctor",__LINE__, __FILE__));
37 :TNamed(name,
"This is a TGo4ThreadManager"),
43 GO4TRACE((15,
"TGo4ThreadManager::TGo4ThreadManager (const char*, Bool_t, Bool_t, Bool_t) constructor",__LINE__, __FILE__));
45 TString myname=GetName();
47 myname+=gSystem->HostName();
49 myname+=gSystem->GetPid();
50 SetName(myname.Data());
51 TString nomen(
"ThreadHandler of "); nomen+=GetName();
60 TGo4Log::Debug(
" ThreadManager -- Starting in application blocking mode ");
61 fxBlocker->SetApplicationRun(kFALSE);
66 TGo4Log::Debug(
" ThreadManager -- Starting in application non-blocking mode ");
67 fxBlocker->SetApplicationRun(kTRUE);
74 GO4TRACE((15,
"TGo4ThreadManager::~TGo4ThreadManager destructor",__LINE__, __FILE__));
82 GO4TRACE((12,
"TGo4ThreadManager::BlockApp()",__LINE__, __FILE__));
88 GO4TRACE((11,
"TGo4ThreadManager::BlockApp() blocking mode",__LINE__, __FILE__));
96 GO4TRACE((11,
"TGo4ThreadManager::BlockApp() unblocking mode",__LINE__, __FILE__));
110 GO4TRACE((12,
"TGo4ThreadManager::UnBlockApp()",__LINE__, __FILE__));
116 GO4TRACE((11,
"TGo4ThreadManager::UnBlockApp() mode 0",__LINE__, __FILE__));
129 GO4TRACE((11,
"TGo4ThreadManager::UnBlockApp() mode 1",__LINE__, __FILE__));
136 GO4TRACE((11,
"TGo4ThreadManager::UnBlockApp() mode 2",__LINE__, __FILE__));
147 GO4TRACE((16,
"++TGo4ThreadManager::UnBlockApp() unknown mode"));
158 GO4TRACE((12,
"TGo4ThreadManager::Initialization()",__LINE__, __FILE__));
162 GO4TRACE((11,
"TGo4ThreadManager::Initialization()--already init done, returning",__LINE__, __FILE__));
171 GO4TRACE((11,
"TGo4ThreadManager::Initialization()--in AutoCreate mode",__LINE__, __FILE__));
175 TGo4Log::Debug(
" ThreadManager -- All threads are up, writing dump file ");
181 GO4TRACE((11,
"TGo4ThreadManager::Initialization()--in AutoStart mode",__LINE__, __FILE__));
186 GO4TRACE((11,
"TGo4ThreadManager::Initialization()--in non-AutoStart mode",__LINE__, __FILE__));
197 TGo4Log::Debug(
" ThreadManager -- some threads are missing, re-doing Init ");
204 GO4TRACE((11,
"TGo4ThreadManager::Initialization()--not in AutoCreate mode",__LINE__, __FILE__));
213 GO4TRACE((15,
"TGo4ThreadManager::Launch()",__LINE__, __FILE__));
217 GO4TRACE((13,
"TGo4ThreadManager::Launch()-- executing AutoCreate mode",__LINE__, __FILE__));
223 GO4TRACE((13,
"TGo4ThreadManager::Launch()-- no AutoCreate mode",__LINE__, __FILE__));
230 GO4TRACE((15,
"TGo4ThreadManager::Terminate()",__LINE__, __FILE__));
237 GO4TRACE((13,
"TGo4ThreadManager::Terminate()--waking up timer:",__LINE__, __FILE__));
virtual Int_t Initialization()
virtual void TerminateFast()
TGo4ThreadHandler * fxWorkHandler
TGo4AppControlTimer * fxBlocker
Bool_t UnBlockApp(Int_t mode=0)
Bool_t GetApplicationRun() const
Bool_t fbTerminateApplication
Int_t DumpThreads(Int_t mode=0)
static void Debug(const char *text,...) GO4_PRINTF_ARGS
const TCondition * GetCondition() const
void SetApplicationRun(Bool_t flag=kTRUE)
virtual ~TGo4ThreadManager()
Bool_t IsOperating() const
virtual void Terminate(Bool_t termapp=kTRUE)
static const Long_t fglTIMERPERIOD