#include <EC_MT_Dispatching.h>
Inheritance diagram for TAO_EC_MT_Dispatching:
Public Member Functions | |
TAO_EC_MT_Dispatching (int nthreads, int thread_creation_flags, int thread_priority, int force_activate) | |
virtual void | activate (void) |
virtual void | shutdown (void) |
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) |
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. | |
int | nthreads_ |
The number of active tasks. | |
int | thread_creation_flags_ |
int | thread_priority_ |
The priority of the dispatching threads. | |
int | force_activate_ |
TAO_EC_Dispatching_Task | task_ |
The dispatching task. | |
TAO_SYNCH_MUTEX | lock_ |
Synchronize access to internal data. | |
int | active_ |
Are the threads running? |
This strategy uses a single queue, serviced by one or more threads. It's main purpose is to decouple the suppliers from the client execution time, specially in the collocated case.
|
Constructor It will create nthreads servicing threads... |
|
Initialize all the data structures, activate any internal threads, etc. Implements 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). Implements TAO_EC_Dispatching. |
|
Implements TAO_EC_Dispatching. |
|
Deactivate any internal threads and cleanup internal data structures, it should only return once the threads have finished their jobs. Implements TAO_EC_Dispatching. |
|
Are the threads running?
|
|
If activation at the requested priority fails then we fallback on the defaults for thread activation. |
|
Synchronize access to internal data.
|
|
The number of active tasks.
|
|
The dispatching task.
|
|
The flags (THR_BOUND, THR_NEW_LWP, etc.) used to create the dispatching threads. |
|
Use our own thread manager.
|
|
The priority of the dispatching threads.
|