GSI Object Oriented Online Offline (Go4)  GO4-6.2.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Private Attributes | List of all members
TGo4AppControlTimer Class Reference

#include <TGo4AppControlTimer.h>

+ Inheritance diagram for TGo4AppControlTimer:

Public Member Functions

 TGo4AppControlTimer (TGo4ThreadManager *manager, Long_t msperiod=3000, Bool_t mode=kTRUE)
virtual ~TGo4AppControlTimer ()
void SetManager (TGo4ThreadManager *parent)
virtual Bool_t Notify ()
const TCondition * GetCondition () const
void SetApplicationRun (Bool_t flag=kTRUE)
Bool_t GetApplicationRun ()

Protected Attributes


Static Protected Attributes

static UInt_t fguTERMWAIT = 3000
static Int_t fgiTERMWAITCYCLES = 5

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.

J. Adamczewski
Go4 project-DVEE-GSI Darmstadt
jul 2000-oct 2001

Definition at line 39 of file TGo4AppControlTimer.h.

Constructor & Destructor Documentation

TGo4AppControlTimer::TGo4AppControlTimer ( TGo4ThreadManager manager,
Long_t  msperiod = 3000,
Bool_t  mode = kTRUE 

Definition at line 29 of file TGo4AppControlTimer.cxx.

References fxCondition, fxManager, and GO4TRACE.

TGo4AppControlTimer::~TGo4AppControlTimer ( )

Definition at line 40 of file TGo4AppControlTimer.cxx.

References fxCondition, and GO4TRACE.

TGo4AppControlTimer::TGo4AppControlTimer ( )

Member Function Documentation

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.

References fbApplicationRun, and GO4TRACE.

Referenced by TGo4ThreadManager::UnBlockApp().

const TCondition* TGo4AppControlTimer::GetCondition ( ) const

Returns handle for internal condition which is used to block the gSystem.

Definition at line 56 of file TGo4AppControlTimer.h.

References fxCondition.

Referenced by TGo4ThreadManager::UnBlockApp().

Bool_t TGo4AppControlTimer::Notify ( )
void TGo4AppControlTimer::SetApplicationRun ( Bool_t  flag = kTRUE)

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 64 of file TGo4AppControlTimer.h.

References fbApplicationRun.

Referenced by TGo4ThreadManager::BlockApp(), and TGo4ThreadManager::UnBlockApp().

void TGo4AppControlTimer::SetManager ( TGo4ThreadManager parent)

Sets reference to new thread manager

Definition at line 47 of file TGo4AppControlTimer.h.

References fxManager.

Member Data Documentation

Bool_t TGo4AppControlTimer::fbApplicationRun

Definition at line 98 of file TGo4AppControlTimer.h.

Referenced by GetApplicationRun(), Notify(), and SetApplicationRun().

Int_t TGo4AppControlTimer::fgiTERMWAITCYCLES = 5

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 87 of file TGo4AppControlTimer.h.

Referenced by Notify().

UInt_t TGo4AppControlTimer::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

Definition at line 79 of file TGo4AppControlTimer.h.

Referenced by Notify().

TCondition* TGo4AppControlTimer::fxCondition
TGo4ThreadManager* TGo4AppControlTimer::fxManager

Backlink to threadmanager who owns this timer. 1 1

Definition at line 94 of file TGo4AppControlTimer.h.

Referenced by Notify(), SetManager(), and TGo4AppControlTimer().

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