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/Thread_Manager.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);

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 MEMBERS

void *status_;

ACE_Thread_Control thread_control_;

AUTHOR

Doug Schmidt

LIBRARY

ace