# ACE_Thread_Adapter Class Reference

Converts a C++ function into a function that can be called from a thread creation routine (e.g., pthread_create() or _beginthreadex()) that expects an extern "C" entry point. This class also makes it possible to transparently provide hooks to register a thread with an ACE_Thread_Manager. More...

`#include <Thread_Adapter.h>`

Inheritance diagram for ACE_Thread_Adapter:

[legend]
Collaboration diagram for ACE_Thread_Adapter:

[legend]
List of all members.

## Public Member Functions

| ACE_Thread_Adapter (ACE_THR_FUNC user_func, void *arg, ACE_THR_C_FUNC entry_point=(ACE_THR_C_FUNC) ACE_THREAD_ADAPTER_NAME, ACE_Thread_Manager *thr_mgr=0, ACE_Thread_Descriptor *td=0)
| Constructor.
virtual ACE_THR_FUNC_RETURN | invoke (void)
ACE_Thread_Manager * | thr_mgr (void)
| Accessor for the optional <thread_manager>.

## Protected Member Functions

| ~ACE_Thread_Adapter (void)
| Ensure that this object must be allocated on the heap.

## Private Member Functions

virtual ACE_THR_FUNC_RETURN | invoke_i (void)

## Private Attributes

ACE_Thread_Manager * | thr_mgr_
| Optional thread manager.

## Detailed Description

Converts a C++ function into a function that can be called from a thread creation routine (e.g., pthread_create() or _beginthreadex()) that expects an extern "C" entry point. This class also makes it possible to transparently provide hooks to register a thread with an ACE_Thread_Manager.

This class is used in ACE_OS::thr_create(). In general, the thread that creates an object of this class is different from the thread that calls `invoke()` on this object. Therefore, the `invoke()` method is responsible for deleting itself.

## Constructor & Destructor Documentation

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_Thread_Adapter::ACE_Thread_Adapter | ( | ACE_THR_FUNC | user_func,
|  | void * | arg,
|  | ACE_THR_C_FUNC | entry_point = `(ACE_THR_C_FUNC) ACE_THREAD_ADAPTER_NAME`,
|  | ACE_Thread_Manager * | thr_mgr = `0`,
|  | ACE_Thread_Descriptor * | td = `0`
| ) |

| Constructor.

ACE_Thread_Adapter::~ACE_Thread_Adapter | ( | void |  | ) | `[protected]`

| Ensure that this object must be allocated on the heap.

## Member Function Documentation

ACE_THR_FUNC_RETURN ACE_Thread_Adapter::invoke | ( | void |  | ) | `[virtual]`

| Execute the <user_func_> with the <arg>. This function deletes <this>, thereby rendering the object useless after the call returns. Implements ACE_Base_Thread_Adapter.

ACE_THR_FUNC_RETURN ACE_Thread_Adapter::invoke_i | ( | void |  | ) | `[private, virtual]`

| Called by invoke, mainly here to separate the SEH stuff because SEH on Win32 doesn't compile with local vars with destructors.

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE ACE_Thread_Manager * ACE_Thread_Adapter::thr_mgr | ( | void |  | ) |

| Accessor for the optional <thread_manager>.

## Member Data Documentation

ACE_Thread_Manager* ACE_Thread_Adapter::thr_mgr_`[private]`

| Optional thread manager.

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

- Thread_Adapter.h
- Thread_Adapter.cpp
- Thread_Adapter.inl