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"),
39 fbTerminating(kFALSE),
40 fbTerminateApplication(kFALSE),
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__));
172 GO4TRACE((11,
"TGo4ThreadManager::Initialization()--in AutoCreate mode",__LINE__, __FILE__));
176 TGo4Log::Debug(
" ThreadManager -- All threads are up, writing dump file ");
182 GO4TRACE((11,
"TGo4ThreadManager::Initialization()--in AutoStart mode",__LINE__, __FILE__));
187 GO4TRACE((11,
"TGo4ThreadManager::Initialization()--in non-AutoStart mode",__LINE__, __FILE__));
198 TGo4Log::Debug(
" ThreadManager -- some threads are missing, re-doing Init ");
207 GO4TRACE((11,
"TGo4ThreadManager::Initialization()--not in AutoCreate mode",__LINE__, __FILE__));
216 GO4TRACE((15,
"TGo4ThreadManager::Launch()",__LINE__, __FILE__));
220 GO4TRACE((13,
"TGo4ThreadManager::Launch()-- executing AutoCreate mode",__LINE__, __FILE__));
226 GO4TRACE((13,
"TGo4ThreadManager::Launch()-- no AutoCreate mode",__LINE__, __FILE__));
233 GO4TRACE((15,
"TGo4ThreadManager::Terminate()",__LINE__, __FILE__));
240 GO4TRACE((13,
"TGo4ThreadManager::Terminate()--waking up timer:",__LINE__, __FILE__));
virtual Int_t Initialization()
virtual void TerminateFast()
Bool_t IsOperating() const
TGo4ThreadHandler * fxWorkHandler
TGo4AppControlTimer * fxBlocker
Bool_t UnBlockApp(Int_t mode=0)
Bool_t fbTerminateApplication
Int_t DumpThreads(Int_t mode=0)
Bool_t GetApplicationRun()
const TCondition * GetCondition() const
void SetApplicationRun(Bool_t flag=kTRUE)
virtual ~TGo4ThreadManager()
virtual void Terminate(Bool_t termapp=kTRUE)
static void Debug(const char *text,...)
static const Long_t fglTIMERPERIOD