Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes

TAO_Thread_Pool_Threads Class Reference

Class representing a static thread running in a thread lane. More...

#include <Thread_Pool.h>

Inheritance diagram for TAO_Thread_Pool_Threads:
Inheritance graph
[legend]
Collaboration diagram for TAO_Thread_Pool_Threads:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 TAO_Thread_Pool_Threads (TAO_Thread_Lane &lane)
 Constructor.
int svc (void)
 Method executed when a thread is spawned.
TAO_Thread_Lanelane (void) const
 Accessor to the lane to which this thread belongs to.

Static Public Member Functions

static void set_tss_resources (TAO_ORB_Core &orb_core, TAO_Thread_Lane &thread_lane)
 Set TSS resources for the current thread.

Protected Member Functions

virtual int run (TAO_ORB_Core &orb_core)
 Do the real work.

Protected Attributes

TAO_Thread_Lanelane_
 Lane to which this thread belongs to.

Detailed Description

Class representing a static thread running in a thread lane.

Definition at line 72 of file Thread_Pool.h.


Constructor & Destructor Documentation

TAO_Thread_Pool_Threads::TAO_Thread_Pool_Threads ( TAO_Thread_Lane lane  ) 

Constructor.

Definition at line 40 of file Thread_Pool.cpp.

  : ACE_Task_Base (lane.pool ().manager ().orb_core ().thr_mgr ()),
    lane_ (lane)
{
}


Member Function Documentation

TAO_Thread_Lane & TAO_Thread_Pool_Threads::lane ( void   )  const

Accessor to the lane to which this thread belongs to.

Definition at line 9 of file Thread_Pool.inl.

{
  return this->lane_;
}

int TAO_Thread_Pool_Threads::run ( TAO_ORB_Core orb_core  )  [protected, virtual]

Do the real work.

Reimplemented in TAO_Dynamic_Thread_Pool_Threads.

Definition at line 76 of file Thread_Pool.cpp.

{
  CORBA::ORB_ptr orb = orb_core.orb ();

  // Run the ORB.
  orb->run ();

  return 0;
}

void TAO_Thread_Pool_Threads::set_tss_resources ( TAO_ORB_Core orb_core,
TAO_Thread_Lane thread_lane 
) [static]

Set TSS resources for the current thread.

Get the ORB_Core's TSS resources.

Set the lane attribute in TSS.

Definition at line 87 of file Thread_Pool.cpp.

{
  /// Get the ORB_Core's TSS resources.
  TAO_ORB_Core_TSS_Resources &tss =
    *orb_core.get_tss_resources ();

  /// Set the lane attribute in TSS.
  tss.lane_ = &thread_lane;

  TAO_TSS_Resources::instance ()->rtcorba_current_priority_
    = thread_lane.lane_priority ();
}

int TAO_Thread_Pool_Threads::svc ( void   )  [virtual]

Method executed when a thread is spawned.

Reimplemented from ACE_Task_Base.

Definition at line 47 of file Thread_Pool.cpp.

{
  TAO_ORB_Core &orb_core =
    this->lane ().pool ().manager ().orb_core ();

  if (orb_core.has_shutdown ())
    return 0;

  // Set TSS resources for this thread.
  TAO_Thread_Pool_Threads::set_tss_resources (orb_core, this->lane_);

  try
    {
      // Do the work
      this->run (orb_core);
    }
  catch (const ::CORBA::Exception& ex)
    {
      // No point propagating this exception.  Print it out.
      ACE_ERROR ((LM_ERROR,
                  "orb->run() raised exception for thread %t\n"));

      ex._tao_print_exception ("");
    }

  return 0;
}


Member Data Documentation

Lane to which this thread belongs to.

Definition at line 94 of file Thread_Pool.h.


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