#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.
1.5.6