#include <EC_Priority_Dispatching.h>
Inheritance diagram for TAO_EC_Priority_Dispatching:
Public Methods | |
TAO_EC_Priority_Dispatching (TAO_EC_Event_Channel *ec) | |
The scheduler is used to find the range of priorities and similar info. More... | |
virtual void | activate (void) |
Initialize all the data structures, activate any internal threads, etc. More... | |
virtual void | shutdown (void) |
Deactivate any internal threads and cleanup internal data structures, it should only return once the threads have finished their jobs. More... | |
virtual void | push (TAO_EC_ProxyPushSupplier *proxy, RtecEventComm::PushConsumer_ptr consumer, const RtecEventComm::EventSet &event, TAO_EC_QOS_Info &qos_info ACE_ENV_ARG_DECL) |
The consumer represented by <proxy> should receive <event>. More... | |
virtual void | push_nocopy (TAO_EC_ProxyPushSupplier *proxy, RtecEventComm::PushConsumer_ptr consumer, RtecEventComm::EventSet &event, TAO_EC_QOS_Info &qos_info ACE_ENV_ARG_DECL) |
Private Attributes | |
ACE_Thread_Manager | thread_manager_ |
Use our own thread manager. More... | |
int | ntasks_ |
The number of active tasks. More... | |
TAO_EC_Dispatching_Task ** | tasks_ |
The tasks.. More... | |
RtecScheduler::Scheduler_var | scheduler_ |
The scheduler. More... |
This strategy uses multiple queues, each serviced by a thread at different priority. This minimizes priority inversion because the consumers at higher priority are serviced before consumers at lower priority. It is more flexible than using the supplier thread to dispatch because it allows high-priority suppliers to push events to low-priority consumers (and vice-versa). It also isolates the supplier threads from the time spent on upcalls to the consumer objects, making the system easier to analyze and schedule.
|
The scheduler is used to find the range of priorities and similar info.
|
|
Initialize all the data structures, activate any internal threads, etc.
Reimplemented from TAO_EC_Dispatching. |
|
The consumer represented by <proxy> should receive <event>. It can use the information in <qos_info> to determine the event priority (among other things). Reimplemented from TAO_EC_Dispatching. |
|
Reimplemented from TAO_EC_Dispatching. |
|
Deactivate any internal threads and cleanup internal data structures, it should only return once the threads have finished their jobs.
Reimplemented from TAO_EC_Dispatching. |
|
The number of active tasks.
|
|
The scheduler.
|
|
The tasks..
|
|
Use our own thread manager.
|