![]() |
The Gaudi Framework
master (ff829712)
|
#include </builds/gaudi/Gaudi/GaudiHive/src/AvalancheSchedulerSvc.h>
Classes | |
struct | AlgQueueSort |
Comparison operator to sort the queues. More... | |
struct | TaskSpec |
Struct to hold entries in the alg queues. More... | |
Public Member Functions | |
StatusCode | initialize () override |
Initialise. | |
StatusCode | finalize () override |
Finalise. | |
StatusCode | pushNewEvent (EventContext *eventContext) override |
Make an event available to the scheduler. | |
StatusCode | pushNewEvents (std::vector< EventContext * > &eventContexts) override |
StatusCode | popFinishedEvent (EventContext *&eventContext) override |
Blocks until an event is available. | |
StatusCode | tryPopFinishedEvent (EventContext *&eventContext) override |
Try to fetch an event from the scheduler. | |
unsigned int | freeSlots () override |
Get free slots number. | |
void | dumpState () override |
Dump scheduler state for all slots. | |
virtual StatusCode | scheduleEventView (const EventContext *sourceContext, const std::string &nodeName, std::unique_ptr< EventContext > viewContext) override |
Method to inform the scheduler about event views. | |
virtual void | recordOccupancy (int samplePeriod, std::function< void(OccupancySnapshot)> callback) override |
Sample occupancy at fixed interval (ms) Negative value to deactivate, 0 to snapshot every change Each sample, apply the callback function to the result. | |
bool | next (TaskSpec &ts, bool asynchronous) |
![]() | |
void const * | i_cast (const InterfaceID &tid) const override |
Implementation of IInterface::i_cast. | |
StatusCode | queryInterface (const InterfaceID &ti, void **pp) override |
Implementation of IInterface::queryInterface. | |
std::vector< std::string > | getInterfaceNames () const override |
Implementation of IInterface::getInterfaceNames. | |
![]() | |
const std::string & | name () const override |
Retrieve name of the service. | |
StatusCode | configure () override |
StatusCode | initialize () override |
StatusCode | start () override |
StatusCode | stop () override |
StatusCode | finalize () override |
StatusCode | terminate () override |
Gaudi::StateMachine::State | FSMState () const override |
Gaudi::StateMachine::State | targetFSMState () const override |
StatusCode | reinitialize () override |
StatusCode | restart () override |
StatusCode | sysInitialize () override |
Initialize Service. | |
StatusCode | sysStart () override |
Initialize Service. | |
StatusCode | sysStop () override |
Initialize Service. | |
StatusCode | sysFinalize () override |
Finalize Service. | |
StatusCode | sysReinitialize () override |
Re-initialize the Service. | |
StatusCode | sysRestart () override |
Re-initialize the Service. | |
Service (std::string name, ISvcLocator *svcloc) | |
Standard Constructor. | |
SmartIF< ISvcLocator > & | serviceLocator () const override |
Retrieve pointer to service locator. | |
template<typename IFace = IService> | |
SmartIF< IFace > | service (const std::string &name, bool createIf=true) const |
template<class T> | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, ToolHandle< T > &hndl, const std::string &doc="none") |
template<class T> | |
StatusCode | declareTool (ToolHandle< T > &handle, bool createIf=true) |
template<class T> | |
StatusCode | declareTool (ToolHandle< T > &handle, const std::string &toolTypeAndName, bool createIf=true) |
Declare used tool. | |
template<class T> | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, ToolHandleArray< T > &hndlArr, const std::string &doc="none") |
template<class T> | |
void | addToolsArray (ToolHandleArray< T > &hndlArr) |
const std::vector< IAlgTool * > & | tools () const |
SmartIF< IAuditorSvc > & | auditorSvc () const |
The standard auditor service.May not be invoked before sysInitialize() has been invoked. | |
![]() | |
StatusCode | setProperty (const Gaudi::Details::PropertyBase &p) |
Set the property from a property. | |
StatusCode | setProperty (const std::string &name, const char *v) |
Special case for string literals. | |
StatusCode | setProperty (const std::string &name, const std::string &v) |
Special case for std::string. | |
StatusCode | setProperty (const std::string &name, const TYPE &value) |
set the property form the value | |
PropertyHolder ()=default | |
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Details::PropertyBase &prop) |
Declare a property. | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, TYPE &value, const std::string &doc="none") |
Helper to wrap a regular data member and use it as a regular property. | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, Gaudi::Property< TYPE, VERIFIER, HANDLERS > &prop, const std::string &doc="none") |
Declare a PropertyBase instance setting name and documentation. | |
Gaudi::Details::PropertyBase * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") |
Declare a remote property. | |
StatusCode | setProperty (const std::string &name, const Gaudi::Details::PropertyBase &p) override |
set the property from another property with a different name | |
StatusCode | setProperty (const std::string &s) override |
set the property from the formatted string | |
StatusCode | setProperty (const Gaudi::Details::PropertyBase &p) |
Set the property from a property. | |
StatusCode | setProperty (const std::string &name, const char *v) |
Special case for string literals. | |
StatusCode | setProperty (const std::string &name, const std::string &v) |
Special case for std::string. | |
StatusCode | setProperty (const std::string &name, const TYPE &value) |
set the property form the value | |
StatusCode | setPropertyRepr (const std::string &n, const std::string &r) override |
set the property from name and value string representation | |
StatusCode | getProperty (Gaudi::Details::PropertyBase *p) const override |
get the property | |
const Gaudi::Details::PropertyBase & | getProperty (std::string_view name) const override |
get the property by name | |
StatusCode | getProperty (std::string_view n, std::string &v) const override |
convert the property to the string | |
const std::vector< Gaudi::Details::PropertyBase * > & | getProperties () const override |
get all properties | |
bool | hasProperty (std::string_view name) const override |
Return true if we have a property with the given name. | |
Gaudi::Details::PropertyBase * | property (std::string_view name) const |
\fixme property and bindPropertiesTo should be protected | |
void | bindPropertiesTo (Gaudi::Interfaces::IOptionsSvc &optsSvc) |
PropertyHolder (const PropertyHolder &)=delete | |
PropertyHolder & | operator= (const PropertyHolder &)=delete |
![]() | |
MSG::Level | msgLevel () const |
get the cached level (originally extracted from the embedded MsgStream) | |
bool | msgLevel (MSG::Level lvl) const |
get the output level from the embedded MsgStream | |
![]() | |
virtual | ~CommonMessagingBase ()=default |
Virtual destructor. | |
const SmartIF< IMessageSvc > & | msgSvc () const |
The standard message service. | |
MsgStream & | msgStream () const |
Return an uninitialized MsgStream. | |
MsgStream & | msgStream (const MSG::Level level) const |
Predefined configurable message stream for the efficient printouts. | |
MsgStream & | always () const |
shortcut for the method msgStream(MSG::ALWAYS) | |
MsgStream & | fatal () const |
shortcut for the method msgStream(MSG::FATAL) | |
MsgStream & | err () const |
shortcut for the method msgStream(MSG::ERROR) | |
MsgStream & | error () const |
shortcut for the method msgStream(MSG::ERROR) | |
MsgStream & | warning () const |
shortcut for the method msgStream(MSG::WARNING) | |
MsgStream & | info () const |
shortcut for the method msgStream(MSG::INFO) | |
MsgStream & | debug () const |
shortcut for the method msgStream(MSG::DEBUG) | |
MsgStream & | verbose () const |
shortcut for the method msgStream(MSG::VERBOSE) | |
MsgStream & | msg () const |
shortcut for the method msgStream(MSG::INFO) | |
Private Types | |
enum | ActivationState { INACTIVE = 0 , ACTIVE = 1 , FAILURE = 2 } |
using | AState = AlgsExecutionStates::State |
using | action = std::function<StatusCode()> |
Private Member Functions | |
StatusCode | dumpGraphFile (const std::map< std::string, DataObjIDColl > &inDeps, const std::map< std::string, DataObjIDColl > &outDeps) const |
void | activate () |
Activate scheduler. | |
StatusCode | deactivate () |
Deactivate scheduler. | |
unsigned int | algname2index (const std::string &algoname) |
Convert a name to an integer. | |
const std::string & | index2algname (unsigned int index) |
Convert an integer to a name. | |
StatusCode | iterate () |
Loop on all slots to schedule DATAREADY algorithms and sign off ready events. | |
StatusCode | revise (unsigned int iAlgo, EventContext *contextPtr, AState state, bool iterate=false) |
StatusCode | schedule (TaskSpec &&) |
StatusCode | signoff (const TaskSpec &) |
The call to this method is triggered only from within the AlgTask. | |
bool | isStalled (const EventSlot &) const |
Check if scheduling in a particular slot is in a stall. | |
void | eventFailed (EventContext *eventContext) |
Method to execute if an event failed. | |
void | dumpSchedulerState (int iSlot) |
Dump the state of the scheduler. | |
Private Attributes | |
std::chrono::duration< int64_t, std::milli > | m_snapshotInterval = std::chrono::duration<int64_t, std::milli>::min() |
std::chrono::system_clock::time_point | m_lastSnapshot = std::chrono::system_clock::now() |
std::function< void(OccupancySnapshot)> | m_snapshotCallback |
Gaudi::Property< int > | m_threadPoolSize |
Gaudi::Property< int > | m_maxParallelismExtra |
Gaudi::Property< std::string > | m_whiteboardSvcName { this, "WhiteboardSvc", "EventDataSvc", "The whiteboard name" } |
Gaudi::Property< unsigned int > | m_maxBlockingAlgosInFlight |
Gaudi::Property< bool > | m_simulateExecution |
Gaudi::Property< std::string > | m_optimizationMode |
Gaudi::Property< bool > | m_dumpIntraEventDynamics |
Gaudi::Property< bool > | m_enablePreemptiveBlockingTasks |
Gaudi::Property< int > | m_numOffloadThreads |
Gaudi::Property< bool > | m_checkDeps |
Gaudi::Property< bool > | m_checkOutput |
Gaudi::Property< std::vector< std::string > > | m_checkOutputIgnoreList |
Gaudi::Property< std::string > | m_useDataLoader |
Gaudi::Property< bool > | m_enableCondSvc { this, "EnableConditions", false, "Enable ConditionsSvc" } |
Gaudi::Property< bool > | m_showDataDeps |
Gaudi::Property< bool > | m_showDataFlow |
Gaudi::Property< bool > | m_showControlFlow |
Gaudi::Property< bool > | m_verboseSubSlots { this, "VerboseSubSlots", false, "Dump algorithm states for all sub-slots" } |
Gaudi::Property< std::string > | m_dataDepsGraphFile |
Gaudi::Property< std::string > | m_dataDepsGraphAlgoPattern |
Gaudi::Property< std::string > | m_dataDepsGraphObjectPattern |
std::atomic< ActivationState > | m_isActive { INACTIVE } |
Flag to track if the scheduler is active or not. | |
std::thread | m_thread |
The thread in which the activate function runs. | |
std::unordered_map< std::string, unsigned int > | m_algname_index_map |
Map to bookkeep the information necessary to the name2index conversion. | |
std::vector< std::string > | m_algname_vect |
Vector to bookkeep the information necessary to the index2name conversion. | |
SmartIF< IPrecedenceSvc > | m_precSvc |
A shortcut to the Precedence Service. | |
SmartIF< IHiveWhiteBoard > | m_whiteboard |
A shortcut to the whiteboard. | |
std::vector< EventSlot > | m_eventSlots |
Vector of events slots. | |
std::atomic_int | m_freeSlots { 0 } |
Atomic to account for asyncronous updates by the scheduler wrt the rest. | |
tbb::concurrent_bounded_queue< EventContext * > | m_finishedEvents |
Queue of finished events. | |
SmartIF< IAlgExecStateSvc > | m_algExecStateSvc |
Algorithm execution state manager. | |
SmartIF< ICondSvc > | m_condSvc |
A shortcut to service for Conditions handling. | |
unsigned int | m_algosInFlight = 0 |
Number of algorithms presently in flight. | |
unsigned int | m_blockingAlgosInFlight = 0 |
Number of algorithms presently in flight. | |
SmartIF< IAlgResourcePool > | m_algResourcePool |
Cache for the algorithm resource pool. | |
tbb::concurrent_bounded_queue< action > | m_actionsQueue |
Queue where closures are stored and picked for execution. | |
tbb::concurrent_priority_queue< TaskSpec, AlgQueueSort > | m_scheduledQueue |
Queues for scheduled algorithms. | |
tbb::concurrent_priority_queue< TaskSpec, AlgQueueSort > | m_scheduledAsynchronousQueue |
std::queue< TaskSpec > | m_retryQueue |
std::atomic< bool > | m_needsUpdate { true } |
SmartIF< IThreadPoolSvc > | m_threadPoolSvc |
tbb::task_arena * | m_arena { nullptr } |
std::unique_ptr< FiberManager > | m_fiberManager { nullptr } |
size_t | m_maxEventsInFlight { 0 } |
size_t | m_maxAlgosInFlight { 1 } |
Friends | |
class | AlgTask |
Additional Inherited Members | |
![]() | |
using | base_class |
Typedef to this class. | |
using | extend_interfaces_base |
Typedef to the base of this class. | |
![]() | |
using | Factory = Gaudi::PluginService::Factory<IService*( const std::string&, ISvcLocator* )> |
![]() | |
using | PropertyHolderImpl |
Typedef used to refer to this class from derived classes, as in. | |
![]() | |
using | base_class |
![]() | |
using | ext_iids |
take union of the ext_iids of all Interfaces... | |
![]() | |
std::vector< IAlgTool * > & | tools () |
~Service () override | |
int | outputLevel () const |
get the Service's output level | |
![]() | |
MSG::Level | setUpMessaging () const |
Set up local caches. | |
MSG::Level | resetMessaging () |
Reinitialize internal states. | |
void | updateMsgStreamOutputLevel (int level) |
Update the output level of the cached MsgStream. | |
![]() | |
Gaudi::StateMachine::State | m_state = Gaudi::StateMachine::OFFLINE |
Service state. | |
Gaudi::StateMachine::State | m_targetState = Gaudi::StateMachine::OFFLINE |
Service state. | |
Gaudi::Property< int > | m_outputLevel { this, "OutputLevel", MSG::NIL, "output level" } |
flag indicating whether ToolHandle tools have been added to m_tools | |
Gaudi::Property< bool > | m_auditorInitialize { this, "AuditInitialize", false, "trigger auditor on initialize()" } |
Gaudi::Property< bool > | m_auditorStart { this, "AuditStart", false, "trigger auditor on start()" } |
Gaudi::Property< bool > | m_auditorStop { this, "AuditStop", false, "trigger auditor on stop()" } |
Gaudi::Property< bool > | m_auditorFinalize { this, "AuditFinalize", false, "trigger auditor on finalize()" } |
Gaudi::Property< bool > | m_auditorReinitialize { this, "AuditReinitialize", false, "trigger auditor on reinitialize()" } |
Gaudi::Property< bool > | m_auditorRestart { this, "AuditRestart", false, "trigger auditor on restart()" } |
Gaudi::Property< bool > | m_autoRetrieveTools |
Gaudi::Property< bool > | m_checkToolDeps |
SmartIF< IAuditorSvc > | m_pAuditorSvc |
Auditor Service. | |
The scheduler is named after its ability to generically maximize the average intra-event task occupancy by inducing avalanche-like concurrency disclosure waves in conditions of arbitrary intra-event task precedence constraints (see section 3.2 of http://cern.ch/go/7Jn7).
The scheduler is driven by graph-based task precedence management. When compared to approach used in the ForwardSchedulerSvc, the following advantages can be emphasized:
(1) Faster decision making (thus lower concurrency disclosure downtime); (2) Capacity for proactive task scheduling decision making.
Point (2) allowed to implement a number of generic, non-intrusive intra-event throughput maximization scheduling strategies.
o Task scheduling prerequisites
A task is scheduled ASA all following conditions are met:
o (*) Avalanche induction strategies
The scheduler is able to maximize the intra-event throughput by applying several search strategies within the pool, prioritizing tasks according to the following types of precedence rules graph asymmetries:
(A) Local task-to-data asymmetry; (B) Local task-to-task asymmetry; (C) Global task-to-task asymmetry.
o Other mechanisms of throughput maximization
The scheduler is able to maximize the overall throughput of data processing by preemptive scheduling CPU-blocking tasks. The mechanism can be applied to the following types of tasks:
Historically, the AvalancheSchedulerSvc branched off the ForwardSchedulerSvc and in many ways built its success on ideas and code of the latter.
Definition at line 113 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 160 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 159 of file AvalancheSchedulerSvc.h.
|
private |
|
private |
Activate scheduler.
Activate the scheduler.
From this moment on the queue of actions is checked. The checking will stop when the m_isActive flag is false and the queue is not empty. This will guarantee that all actions are executed and a stall is not created. The TBB pool must be initialised in the thread from where the tasks are launched (http://threadingbuildingblocks.org/docs/doxygen/a00342.html) The scheduler is initialised here since this method runs in a separate thread and spawns the tasks (through the execution of the lambdas)
Definition at line 458 of file AvalancheSchedulerSvc.cpp.
|
inlineprivate |
Convert a name to an integer.
Definition at line 251 of file AvalancheSchedulerSvc.h.
|
private |
Deactivate scheduler.
Deactivates the scheduler.
Two actions are pushed into the queue: 1) Drain the scheduler until all events are finished. 2) Flip the status flag m_isActive to false This second action is the last one to be executed by the scheduler.
Definition at line 515 of file AvalancheSchedulerSvc.cpp.
|
private |
Definition at line 1178 of file AvalancheSchedulerSvc.cpp.
|
private |
Dump the state of the scheduler.
Used for debugging purposes, the state of the scheduler is dumped on screen in order to be inspected.
Definition at line 880 of file AvalancheSchedulerSvc.cpp.
|
override |
Dump scheduler state for all slots.
Definition at line 619 of file AvalancheSchedulerSvc.cpp.
|
private |
Method to execute if an event failed.
It can be possible that an event fails.
In this case this method is called. It dumps the state of the scheduler and marks the event as finished.
Definition at line 859 of file AvalancheSchedulerSvc.cpp.
|
override |
Finalise.
Here the scheduler is deactivated and the thread joined.
Definition at line 424 of file AvalancheSchedulerSvc.cpp.
|
override |
|
inlineprivate |
Convert an integer to a name.
Definition at line 257 of file AvalancheSchedulerSvc.h.
|
override |
Initialise.
Here, among some "bureaucracy" operations, the scheduler is activated, executing the activate() function in a new thread.
In addition the algorithms list is acquired from the algResourcePool.
Definition at line 78 of file AvalancheSchedulerSvc.cpp.
|
private |
Check if scheduling in a particular slot is in a stall.
Check if we are in present of a stall condition for a particular slot.
This is the case when a slot has no actions queued in the actionsQueue, has no scheduled algorithms and has no algorithms with all of its dependencies satisfied.
Definition at line 841 of file AvalancheSchedulerSvc.cpp.
|
private |
Loop on all slots to schedule DATAREADY algorithms and sign off ready events.
Loop on all slots to schedule DATAREADY algorithms, sign off ready ones or detect execution stalls.
To check if an event is finished the method verifies that the root control flow decision of the task precedence graph is resolved and there are no algorithms moving in-between INITIAL and EVTACCEPTED FSM states.
Definition at line 666 of file AvalancheSchedulerSvc.cpp.
|
inline |
Definition at line 376 of file AvalancheSchedulerSvc.h.
|
override |
Blocks until an event is available.
Get a finished event or block until one becomes available.
Definition at line 625 of file AvalancheSchedulerSvc.cpp.
|
override |
Make an event available to the scheduler.
Add event to the scheduler.
There are two cases possible: 1) No slot is free. A StatusCode::FAILURE is returned. 2) At least one slot is free. An action which resets the slot and kicks off its update is queued.
Definition at line 546 of file AvalancheSchedulerSvc.cpp.
|
override |
Definition at line 604 of file AvalancheSchedulerSvc.cpp.
|
overridevirtual |
Sample occupancy at fixed interval (ms) Negative value to deactivate, 0 to snapshot every change Each sample, apply the callback function to the result.
Definition at line 1163 of file AvalancheSchedulerSvc.cpp.
|
private |
Definition at line 800 of file AvalancheSchedulerSvc.cpp.
|
private |
Definition at line 1022 of file AvalancheSchedulerSvc.cpp.
|
overridevirtual |
Method to inform the scheduler about event views.
Definition at line 1123 of file AvalancheSchedulerSvc.cpp.
|
private |
The call to this method is triggered only from within the AlgTask.
Definition at line 1092 of file AvalancheSchedulerSvc.cpp.
|
override |
Try to fetch an event from the scheduler.
Try to get a finished event, if not available just return a failure.
Definition at line 646 of file AvalancheSchedulerSvc.cpp.
Definition at line 115 of file AvalancheSchedulerSvc.h.
|
private |
Queue where closures are stored and picked for execution.
Definition at line 318 of file AvalancheSchedulerSvc.h.
|
private |
Algorithm execution state manager.
Definition at line 278 of file AvalancheSchedulerSvc.h.
|
private |
Map to bookkeep the information necessary to the name2index conversion.
Definition at line 254 of file AvalancheSchedulerSvc.h.
|
private |
Vector to bookkeep the information necessary to the index2name conversion.
Definition at line 260 of file AvalancheSchedulerSvc.h.
|
private |
Number of algorithms presently in flight.
Definition at line 284 of file AvalancheSchedulerSvc.h.
|
private |
Cache for the algorithm resource pool.
Definition at line 313 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 368 of file AvalancheSchedulerSvc.h.
|
private |
Number of algorithms presently in flight.
Definition at line 287 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 195 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 197 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 199 of file AvalancheSchedulerSvc.h.
A shortcut to service for Conditions handling.
Definition at line 281 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 227 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 222 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 232 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 186 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 209 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 188 of file AvalancheSchedulerSvc.h.
|
private |
Vector of events slots.
Definition at line 269 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 369 of file AvalancheSchedulerSvc.h.
|
private |
Queue of finished events.
Definition at line 275 of file AvalancheSchedulerSvc.h.
|
private |
Atomic to account for asyncronous updates by the scheduler wrt the rest.
Definition at line 272 of file AvalancheSchedulerSvc.h.
|
private |
Flag to track if the scheduler is active or not.
Definition at line 245 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 166 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 372 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 179 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 371 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 174 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 362 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 191 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 184 of file AvalancheSchedulerSvc.h.
|
private |
A shortcut to the Precedence Service.
Definition at line 263 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 359 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 358 of file AvalancheSchedulerSvc.h.
|
private |
Queues for scheduled algorithms.
Definition at line 357 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 217 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 211 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 214 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 181 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 167 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 165 of file AvalancheSchedulerSvc.h.
|
private |
The thread in which the activate function runs.
Definition at line 248 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 169 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 367 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 206 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 220 of file AvalancheSchedulerSvc.h.
|
private |
A shortcut to the whiteboard.
Definition at line 266 of file AvalancheSchedulerSvc.h.
|
private |
Definition at line 178 of file AvalancheSchedulerSvc.h.