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 <OS_Thread_Adapter.h>


Public Member Functions | |
| ACE_OS_Thread_Adapter (ACE_THR_FUNC user_func, void *arg, ACE_THR_C_FUNC entry_point=(ACE_THR_C_FUNC) ACE_THREAD_ADAPTER_NAME#if defined(ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS), ACE_SEH_EXCEPT_HANDLER selector=0, ACE_SEH_EXCEPT_HANDLER handler=0#endif) | |
| Constructor. | |
| virtual ACE_THR_FUNC_RETURN | invoke (void) |
Protected Member Functions | |
| ~ACE_OS_Thread_Adapter (void) | |
| Ensure that this object is allocated on the heap. | |
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.
| ACE_OS_Thread_Adapter::ACE_OS_Thread_Adapter | ( | ACE_THR_FUNC | user_func, | |
| void * | arg, | |||
| ACE_THR_C_FUNC | entry_point = (ACE_THR_C_FUNC) ACE_THREAD_ADAPTER_NAME#if defined(ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS), |
|||
| ACE_SEH_EXCEPT_HANDLER | selector = 0, |
|||
| ACE_SEH_EXCEPT_HANDLER | handler = 0#endif | |||
| ) |
Constructor.
| ACE_OS_Thread_Adapter::~ACE_OS_Thread_Adapter | ( | void | ) | [protected] |
Ensure that this object is allocated on the heap.
| ACE_THR_FUNC_RETURN ACE_OS_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.
1.6.1