Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

# TAO::Portable_Server::Non_Servant_Upcall Class Reference

This class helps us with a recursive thread lock without using a recursive thread lock. Non_Servant_Upcall has a magic constructor and destructor. We unlock the Object_Adapter lock for the duration of the non-servant (i.e., adapter activator and servant activator) upcalls; reacquiring once the upcalls complete. Even though we are releasing the lock, other threads will not be able to make progress since <Object_Adapter::non_servant_upcall_in_progress_> has been set. More...

`#include <Non_Servant_Upcall.h>`

Collaboration diagram for TAO::Portable_Server::Non_Servant_Upcall:

[legend]
List of all members.

## Public Member Functions
| Non_Servant_Upcall (::TAO_Root_POA &poa)
| Constructor.
| ~Non_Servant_Upcall (void)
| Destructor.
::TAO_Root_POA & | poa (void) const
## Protected Attributes
TAO_Object_Adapter & | object_adapter_
TAO_Root_POA & | poa_
Non_Servant_Upcall * | previous_

## Detailed Description

This class helps us with a recursive thread lock without using a recursive thread lock. Non_Servant_Upcall has a magic constructor and destructor. We unlock the Object_Adapter lock for the duration of the non-servant (i.e., adapter activator and servant activator) upcalls; reacquiring once the upcalls complete. Even though we are releasing the lock, other threads will not be able to make progress since <Object_Adapter::non_servant_upcall_in_progress_> has been set.

## Constructor & Destructor Documentation

TAO::Portable_Server::Non_Servant_Upcall::Non_Servant_Upcall | ( | ::TAO_Root_POA & | poa | ) |

| Constructor.

TAO::Portable_Server::Non_Servant_Upcall::~Non_Servant_Upcall | ( | void |  | ) |

| Destructor.

## Member Function Documentation

ACE_INLINE::TAO_Root_POA & TAO::Portable_Server::Non_Servant_Upcall::poa | ( | void |  | ) | const

## Member Data Documentation

TAO_Object_Adapter& TAO::Portable_Server::Non_Servant_Upcall::object_adapter_`[protected]`

TAO_Root_POA& TAO::Portable_Server::Non_Servant_Upcall::poa_`[protected]`

Non_Servant_Upcall* TAO::Portable_Server::Non_Servant_Upcall::previous_`[protected]`

The documentation for this class was generated from the following files:

- Non_Servant_Upcall.h
- Non_Servant_Upcall.cpp
- Non_Servant_Upcall.inl