TAO_CosEvent
2.2.8
|
Dispatching strategy that minimizes mt inversion. More...
#include <CEC_MT_Dispatching.h>
Public Member Functions | |
TAO_CEC_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_CEC_ProxyPushSupplier *proxy, const CORBA::Any &event) |
The consumer represented by <proxy> should receive <event>. More... | |
virtual void | push_nocopy (TAO_CEC_ProxyPushSupplier *proxy, CORBA::Any &event) |
Public Member Functions inherited from TAO_CEC_Dispatching | |
virtual | ~TAO_CEC_Dispatching (void) |
destructor... More... | |
Private Attributes | |
ACE_Thread_Manager | thread_manager_ |
Use our own thread manager. More... | |
int | nthreads_ |
The number of active tasks. More... | |
int | thread_creation_flags_ |
int | thread_priority_ |
The priority of the dispatching threads. More... | |
int | force_activate_ |
TAO_CEC_Dispatching_Task | task_ |
The dispatching task. More... | |
TAO_SYNCH_MUTEX | lock_ |
Synchronize access to internal data. More... | |
int | active_ |
Are the threads running? More... | |
Dispatching strategy that minimizes mt inversion.
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.
TAO_CEC_MT_Dispatching::TAO_CEC_MT_Dispatching | ( | int | nthreads, |
int | thread_creation_flags, | ||
int | thread_priority, | ||
int | force_activate | ||
) |
Constructor It will create <nthreads> servicing threads...
|
virtual |
Initialize all the data structures, activate any internal threads, etc.
Implements TAO_CEC_Dispatching.
|
virtual |
The consumer represented by <proxy> should receive <event>.
Implements TAO_CEC_Dispatching.
|
virtual |
Implements TAO_CEC_Dispatching.
|
virtual |
Deactivate any internal threads and cleanup internal data structures, it should only return once the threads have finished their jobs.
Implements TAO_CEC_Dispatching.
|
private |
Are the threads running?
|
private |
If activation at the requested priority fails then we fallback on the defaults for thread activation.
|
private |
Synchronize access to internal data.
|
private |
The number of active tasks.
|
private |
The dispatching task.
|
private |
The flags (THR_BOUND, THR_NEW_LWP, etc.) used to create the dispatching threads.
|
private |
Use our own thread manager.
|
private |
The priority of the dispatching threads.