ACE
6.1.0
|
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>
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, long cancel_flags=0) | |
Constructor. | |
virtual ACE_THR_FUNC_RETURN | invoke (void) |
ACE_Thread_Manager * | thr_mgr (void) |
Accessor for the optional ACE_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. |
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_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 , |
||
long | cancel_flags = 0 |
||
) |
Constructor.
ACE_Thread_Adapter::~ACE_Thread_Adapter | ( | void | ) | [protected] |
Ensure that this object must be allocated on the heap.
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_Thread_Manager * ACE_Thread_Adapter::thr_mgr | ( | void | ) | [inline] |
Accessor for the optional ACE_Thread_Manager.
ACE_Thread_Manager* ACE_Thread_Adapter::thr_mgr_ [private] |
Optional thread manager.