#include <Thread_Pool.h>
Accessors | |
TAO_Thread_Pool & | pool (void) const |
CORBA::ULong | id (void) const |
CORBA::Short | lane_priority (void) const |
CORBA::ULong | static_threads (void) const |
CORBA::ULong | dynamic_threads (void) const |
CORBA::ULong | current_threads (void) const |
CORBA::Short | native_priority (void) const |
TAO_Thread_Lane_Resources & | resources (void) |
ACE_Time_Value const & | dynamic_thread_idle_timeout (void) const |
Public Member Functions | |
TAO_Thread_Lane (TAO_Thread_Pool &pool, CORBA::ULong id, CORBA::Short lane_priority, CORBA::ULong static_threads, CORBA::ULong dynamic_threads, ACE_Time_Value const &dynamic_thread_idle_timeout) | |
Constructor. | |
~TAO_Thread_Lane (void) | |
Destructor. | |
void | open (void) |
Open the lane. | |
void | finalize (void) |
Finalize the resources. | |
void | shutdown_reactor (void) |
Shutdown the reactor. | |
void | wait (void) |
Wait for threads to exit. | |
int | is_collocated (const TAO_MProfile &mprofile) |
Does mprofile belong to us? | |
int | create_static_threads (void) |
Create the static threads - only called once. | |
void | shutting_down (void) |
bool | new_dynamic_thread (void) |
Private Member Functions | |
void | validate_and_map_priority (void) |
Validate lane's priority and map it to a native value. | |
int | create_threads_i (TAO_Thread_Pool_Threads &thread_pool, CORBA::ULong number_of_threads, long thread_flags) |
int | create_dynamic_threads (CORBA::ULong number_of_threads) |
Private Attributes | |
TAO_Thread_Pool & | pool_ |
The Thread Pool to which this lane belongs. | |
CORBA::ULong const | id_ |
The id of this lane. | |
CORBA::Short | lane_priority_ |
bool | shutdown_ |
CORBA::ULong const | static_threads_number_ |
Number of static threads. | |
CORBA::ULong const | dynamic_threads_number_ |
Maximum number of threads we are allowed to create. | |
TAO_Thread_Pool_Threads | static_threads_ |
Array with all static threads. | |
TAO_Dynamic_Thread_Pool_Threads | dynamic_threads_ |
Array with all dynamic threads. | |
TAO_RT_New_Leader_Generator | new_thread_generator_ |
TAO_Thread_Lane_Resources | resources_ |
CORBA::Short | native_priority_ |
ACE_Time_Value const | dynamic_thread_idle_timeout_ |
ACE_SYNCH_MUTEX | lock_ |
Lock to guard all members of the lane. |
TAO_Thread_Lane::TAO_Thread_Lane | ( | TAO_Thread_Pool & | pool, | |
CORBA::ULong | id, | |||
CORBA::Short | lane_priority, | |||
CORBA::ULong | static_threads, | |||
CORBA::ULong | dynamic_threads, | |||
ACE_Time_Value const & | dynamic_thread_idle_timeout | |||
) |
Constructor.
TAO_Thread_Lane::~TAO_Thread_Lane | ( | void | ) |
Destructor.
void TAO_Thread_Lane::open | ( | void | ) |
Open the lane.
void TAO_Thread_Lane::finalize | ( | void | ) |
Finalize the resources.
void TAO_Thread_Lane::shutdown_reactor | ( | void | ) |
Shutdown the reactor.
void TAO_Thread_Lane::wait | ( | void | ) |
Wait for threads to exit.
int TAO_Thread_Lane::is_collocated | ( | const TAO_MProfile & | mprofile | ) |
Does mprofile belong to us?
int TAO_Thread_Lane::create_static_threads | ( | void | ) |
Create the static threads - only called once.
void TAO_Thread_Lane::shutting_down | ( | void | ) |
Mark that this lane is shutting down, we then don't create any dynamic threads anymore. When the pool is shutting down the leader follower loop is called which can cause a request to create a new dynamic thread but we shouldn't create a new one.
bool TAO_Thread_Lane::new_dynamic_thread | ( | void | ) |
Called by the TAO_RT_New_Leader_Generator to request a new dynamic thread. It can be that no thread can be created because the number of threads is equal to the maximum we can have or the Thread Lane is shutting down.
true | A new thread is created | |
false | No thread could be created |
ACE_INLINE TAO_Thread_Pool & TAO_Thread_Lane::pool | ( | void | ) | const |
ACE_INLINE CORBA::ULong TAO_Thread_Lane::id | ( | void | ) | const |
ACE_INLINE CORBA::Short TAO_Thread_Lane::lane_priority | ( | void | ) | const |
ACE_INLINE CORBA::ULong TAO_Thread_Lane::static_threads | ( | void | ) | const |
ACE_INLINE CORBA::ULong TAO_Thread_Lane::dynamic_threads | ( | void | ) | const |
CORBA::ULong TAO_Thread_Lane::current_threads | ( | void | ) | const |
ACE_INLINE CORBA::Short TAO_Thread_Lane::native_priority | ( | void | ) | const |
ACE_INLINE TAO_Thread_Lane_Resources & TAO_Thread_Lane::resources | ( | void | ) |
ACE_INLINE ACE_Time_Value const & TAO_Thread_Lane::dynamic_thread_idle_timeout | ( | void | ) | const |
void TAO_Thread_Lane::validate_and_map_priority | ( | void | ) | [private] |
Validate lane's priority and map it to a native value.
int TAO_Thread_Lane::create_threads_i | ( | TAO_Thread_Pool_Threads & | thread_pool, | |
CORBA::ULong | number_of_threads, | |||
long | thread_flags | |||
) | [private] |
int TAO_Thread_Lane::create_dynamic_threads | ( | CORBA::ULong | number_of_threads | ) | [private] |
Create number_of_threads of dynamic threads. Can be called multiple times.
TAO_Thread_Pool& TAO_Thread_Lane::pool_ [private] |
The Thread Pool to which this lane belongs.
CORBA::ULong const TAO_Thread_Lane::id_ [private] |
The id of this lane.
CORBA::Short TAO_Thread_Lane::lane_priority_ [private] |
bool TAO_Thread_Lane::shutdown_ [private] |
This boolean is set when we are shutting down, then we will not create any new dynamic threads
CORBA::ULong const TAO_Thread_Lane::static_threads_number_ [private] |
Number of static threads.
CORBA::ULong const TAO_Thread_Lane::dynamic_threads_number_ [private] |
Maximum number of threads we are allowed to create.
Array with all static threads.
Array with all dynamic threads.
ACE_Time_Value const TAO_Thread_Lane::dynamic_thread_idle_timeout_ [private] |
ACE_SYNCH_MUTEX TAO_Thread_Lane::lock_ [mutable, private] |
Lock to guard all members of the lane.