TAO_RTCORBA  2.0.8
Public Member Functions | Private Member Functions | Private Attributes
TAO_Thread_Lane Class Reference

Class representing the thread lane inside a thread pool. More...

#include <Thread_Pool.h>

Collaboration diagram for TAO_Thread_Lane:
Collaboration graph
[legend]

List of all members.

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, TAO_RT_ORBInitializer::TAO_RTCORBA_DT_LifeSpan lifespan, ACE_Time_Value const &dynamic_thread_time)
 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_Poolpool_
 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_
TAO_RT_ORBInitializer::TAO_RTCORBA_DT_LifeSpan
const 
lifespan_
ACE_Time_Value const dynamic_thread_time_
TAO_SYNCH_MUTEX lock_
 Lock to guard all members of the lane.

Accessors

TAO_Thread_Poolpool (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_Resourcesresources (void)
TAO_RT_ORBInitializer::TAO_RTCORBA_DT_LifeSpan lifespan (void) const
ACE_Time_Value const & dynamic_thread_time (void) const

Detailed Description

Class representing the thread lane inside a thread pool.


Constructor & Destructor Documentation

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,
TAO_RT_ORBInitializer::TAO_RTCORBA_DT_LifeSpan  lifespan,
ACE_Time_Value const &  dynamic_thread_time 
)

Constructor.

TAO_Thread_Lane::~TAO_Thread_Lane ( void  )

Destructor.


Member Function Documentation

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.

int TAO_Thread_Lane::create_static_threads ( void  )

Create the static threads - only called once.

int TAO_Thread_Lane::create_threads_i ( TAO_Thread_Pool_Threads thread_pool,
CORBA::ULong  number_of_threads,
long  thread_flags 
) [private]
CORBA::ULong TAO_Thread_Lane::current_threads ( void  ) const
ACE_Time_Value const & TAO_Thread_Lane::dynamic_thread_time ( void  ) const [inline]
CORBA::ULong TAO_Thread_Lane::dynamic_threads ( void  ) const [inline]
void TAO_Thread_Lane::finalize ( void  )

Finalize the resources.

CORBA::ULong TAO_Thread_Lane::id ( void  ) const [inline]
int TAO_Thread_Lane::is_collocated ( const TAO_MProfile mprofile)

Does mprofile belong to us?

CORBA::Short TAO_Thread_Lane::lane_priority ( void  ) const [inline]
TAO_RT_ORBInitializer::TAO_RTCORBA_DT_LifeSpan TAO_Thread_Lane::lifespan ( void  ) const [inline]
CORBA::Short TAO_Thread_Lane::native_priority ( void  ) const [inline]
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.

Return values:
trueA new thread is created
falseNo thread could be created
void TAO_Thread_Lane::open ( void  )

Open the lane.

TAO_Thread_Pool & TAO_Thread_Lane::pool ( void  ) const [inline]
TAO_Thread_Lane_Resources & TAO_Thread_Lane::resources ( void  ) [inline]
void TAO_Thread_Lane::shutdown_reactor ( void  )

Shutdown the reactor.

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.

CORBA::ULong TAO_Thread_Lane::static_threads ( void  ) const [inline]
void TAO_Thread_Lane::validate_and_map_priority ( void  ) [private]

Validate lane's priority and map it to a native value.

void TAO_Thread_Lane::wait ( void  )

Wait for threads to exit.


Member Data Documentation

Array with all dynamic threads.

Maximum number of threads we are allowed to create.

The id of this lane.

Lock to guard all members of the lane.

The Thread Pool to which this lane belongs.

This boolean is set when we are shutting down, then we will not create any new dynamic threads

Array with all static threads.

Number of static threads.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines