TGo4AppControlTimer Class Reference

Timer with main purpose to block the root TApplication loop during thread execution. More...

#include <TGo4AppControlTimer.h>

List of all members.

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

TGo4ThreadManagerfxManager
 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


Detailed Description

Timer with main purpose to block the root TApplication loop during thread execution.

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.

Author:
J. Adamczewski

Go4 project-DVEE-GSI Darmstadt

Germany

j.adamczewski@gsi.de

Version:
0.9
Since:
jul 2000-oct 2001

Definition at line 40 of file TGo4AppControlTimer.h.


Constructor & Destructor Documentation

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]


Member Function Documentation

void TGo4AppControlTimer::SetManager ( TGo4ThreadManager parent  )  [inline]

Sets reference to new thread manager.

Definition at line 48 of file TGo4AppControlTimer.h.

Bool_t TGo4AppControlTimer::Notify (  )  [virtual]

Routine called from TTimer on timeout.

Definition at line 52 of file TGo4AppControlTimer.cxx.

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.


Member Data Documentation

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.

Backlink to threadmanager who owns this timer.

1 1

Definition at line 95 of file TGo4AppControlTimer.h.

Definition at line 99 of file TGo4AppControlTimer.h.

TCondition* TGo4AppControlTimer::fxCondition [private]

Definition at line 101 of file TGo4AppControlTimer.h.


The documentation for this class was generated from the following files:

Generated on Thu Oct 28 12:35:16 2010 for Go4-ThreadManagerv4.04-2 by  doxygen 1.5.6