#include <TGo4AppControlTimer.h>
Public Member Functions | |
TGo4AppControlTimer (TGo4ThreadManager *manager, Long_t msperiod=3000, Bool_t mode=kTRUE) | |
virtual | ~TGo4AppControlTimer () |
void | SetManager (TGo4ThreadManager *parent) |
Sets reference to new thread manager. | |
virtual Bool_t | Notify () |
Routine called from TTimer on timeout. | |
const TCondition * | GetCondition () const |
Returns handle for internal condition which is used to block the gSystem. | |
void | SetApplicationRun (Bool_t flag=kTRUE) |
Switches between blocking and non blocking mode of the timer. | |
Bool_t | GetApplicationRun () |
Status of the application run flag. | |
Protected Attributes | |
TGo4ThreadManager * | fxManager |
Backlink to threadmanager who owns this timer. | |
Static Protected Attributes | |
static UInt_t | fguTERMWAIT = 3000 |
time in ms to wait for all Runnables being stopped before Termination; after this time, the AllWaiting() of TGo4ThreadHandler is tested again, until the max number of testing cycles (fgiTERMWAITCYCLES) is reached; then Termination is done anyway | |
static Int_t | fgiTERMWAITCYCLES = 5 |
On Termination, Notify will test fgiTERMWAITCYCLES times if Runnables are stopped, i.e. | |
Private Member Functions | |
TGo4AppControlTimer () | |
Private Attributes | |
Bool_t | fbApplicationRun |
TCondition * | fxCondition |
Moreover, this timer calls Initialization() function of threadmanager, which can be overridden by user to define any actions which should not be run within a thread (critical root system calls, like opening TServerSocket, should be done within the application loop, i.e. in the timer). In threadmanager non-blocking-mode, Initialization() is called from timer regularly with the period specified in threadmanager; in blocking mode it is called once after each threadmanager UnBlockApp(). This timer is also responsible for proper termination of the threadmanager.
Definition at line 40 of file TGo4AppControlTimer.h.
TGo4AppControlTimer::TGo4AppControlTimer | ( | TGo4ThreadManager * | manager, | |
Long_t | msperiod = 3000 , |
|||
Bool_t | mode = kTRUE | |||
) |
Definition at line 30 of file TGo4AppControlTimer.cxx.
TGo4AppControlTimer::~TGo4AppControlTimer | ( | ) | [virtual] |
Definition at line 41 of file TGo4AppControlTimer.cxx.
TGo4AppControlTimer::TGo4AppControlTimer | ( | ) | [private] |
void TGo4AppControlTimer::SetManager | ( | TGo4ThreadManager * | parent | ) | [inline] |
Bool_t TGo4AppControlTimer::Notify | ( | ) | [virtual] |
const TCondition* TGo4AppControlTimer::GetCondition | ( | ) | const [inline] |
Returns handle for internal condition which is used to block the gSystem.
Definition at line 57 of file TGo4AppControlTimer.h.
void TGo4AppControlTimer::SetApplicationRun | ( | Bool_t | flag = kTRUE |
) | [inline] |
Switches between blocking and non blocking mode of the timer.
If set to kTRUE, timer will not block the root system. If set to kFALSE, timer will suspend in a condition wait and therefore the InnerLoop() of root is blocked.
Definition at line 65 of file TGo4AppControlTimer.h.
Bool_t TGo4AppControlTimer::GetApplicationRun | ( | ) |
Status of the application run flag.
If true, root application is _not_ blocked.
Definition at line 140 of file TGo4AppControlTimer.cxx.
UInt_t TGo4AppControlTimer::fguTERMWAIT = 3000 [static, protected] |
time in ms to wait for all Runnables being stopped before Termination; after this time, the AllWaiting() of TGo4ThreadHandler is tested again, until the max number of testing cycles (fgiTERMWAITCYCLES) is reached; then Termination is done anyway
Definition at line 80 of file TGo4AppControlTimer.h.
Int_t TGo4AppControlTimer::fgiTERMWAITCYCLES = 5 [static, protected] |
On Termination, Notify will test fgiTERMWAITCYCLES times if Runnables are stopped, i.e.
all TGo4Threads are in TCondition wait (safe cancelling point); afterwards, threads are deleted anyway
Definition at line 88 of file TGo4AppControlTimer.h.
TGo4ThreadManager* TGo4AppControlTimer::fxManager [protected] |
Backlink to threadmanager who owns this timer.
1 1
Definition at line 95 of file TGo4AppControlTimer.h.
Bool_t TGo4AppControlTimer::fbApplicationRun [private] |
Definition at line 99 of file TGo4AppControlTimer.h.
TCondition* TGo4AppControlTimer::fxCondition [private] |
Definition at line 101 of file TGo4AppControlTimer.h.