NAME
ACE_Thread_Exit - Keep exit information for a Thread in thread specific storage. so that the thread-specific exit hooks will get called no matter how the thread exits (e.g., via ACE_Thread::exit, C++ or Win32 exception, "falling off the end" of the thread entry point function, etc.).
SYNOPSIS
#include <ace/OS.h>
class ACE_Thread_Exit
{
public:
ACE_Thread_Exit (void);
void thr_mgr (ACE_Thread_Manager *tm);
void *status (void *s);
void *status (void);
~ACE_Thread_Exit (void);
static ACE_Thread_Exit *instance (void);
static void cleanup (void *instance, void *);
private:
void *status_;
ACE_Thread_Control thread_control_;
};
DESCRIPTION
This clever little helper class is stored in thread-specific storage using the ACE_TSS wrapper. When a thread exits the ACE_TSS::cleanup function deletes this object, thereby closing it down gracefully.
PUBLIC MEMBERS
ACE_Thread_Exit (void);
Capture the Thread that will be cleaned up automatically.
void thr_mgr (ACE_Thread_Manager *tm);
Set the ACE_Thread_Manager.
void *status (void *s);
Set the exit status.
void *status (void);
Get the exit status.
~ACE_Thread_Exit (void);
Destructor calls the thread-specific exit hooks when a thread exits.
static ACE_Thread_Exit *instance (void);
Singleton access point.
static void cleanup (void *instance, void *);
Cleanup method, used by the ACE_Object_Manager to destroy the singleton.
PRIVATE MEMBERS
void *status_;
Exit status...
ACE_Thread_Control thread_control_;
Automatically add/remove the thread from the ACE_Thread_Manager.
AUTHOR
Doug Schmidt [email protected], Jesper S. M|ller [email protected], and a cast of thousands...
The ACE_Sched_Priority type should be used for platform-
independent thread and process priorities, by convention. int should be used for OS-specific priorities.
typedef for the _stat data structure
Giving unique ACE scoped names for some important
RTSignal-Related constants. Becuase sometimes, different platforms use different names for these constants.
LIBRARY
ace