NAME
ACE_Thread_Control - Used to keep track of a thread's activities within its entry point function.
SYNOPSIS
#include <ace/OS.h>
class ACE_Thread_Control
{
public:
ACE_Thread_Control (ACE_Thread_Manager *tm = 0, int insert = 0);
~ACE_Thread_Control (void);
void *exit (void *status, int do_thr_exit);
int insert (ACE_Thread_Manager *tm, int insert = 0);
ACE_Thread_Manager *thr_mgr (void);
ACE_Thread_Manager *thr_mgr (ACE_Thread_Manager *);
void *status (void *status);
void *status (void);
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;
private:
ACE_Thread_Manager *tm_;
void *status_;
};
DESCRIPTION
A ACE_Thread_Manager uses this class to ensure that threads it spawns automatically register and unregister themselves with it.
This class can be stored in thread-specific storage using the ACE_TSS wrapper. When a thread exits the ACE_TSS::cleanup function deletes this object, thereby ensuring that it gets removed from its associated ACE_Thread_Manager.
PUBLIC MEMBERS
ACE_Thread_Control (ACE_Thread_Manager *tm = 0, int insert = 0);
Initialize the thread control object. If insert != 0, then register the thread with the Thread_Manager.
~ACE_Thread_Control (void);
Remove the thread from its associated Thread_Manager and exit the thread if do_thr_exit is enabled.
void *exit (void *status, int do_thr_exit);
Remove this thread from its associated Thread_Manager and exit the thread if do_thr_exit is enabled.
int insert (ACE_Thread_Manager *tm, int insert = 0);
Store the Thread_Manager and use it to register ourselves for correct shutdown.
ACE_Thread_Manager *thr_mgr (void);
Returns the current Thread_Manager.
ACE_Thread_Manager *thr_mgr (ACE_Thread_Manager *);
Atomically set a new Thread_Manager and return the old Thread_Manager.
void *status (void *status);
Set the exit status (and return existing status).
void *status (void);
Get the current exit status.
void dump (void) const;
Dump the state of an object.
ACE_ALLOC_HOOK_DECLARE;
Declare the dynamic allocation hooks.
PRIVATE MEMBERS
ACE_Thread_Manager *tm_;
Pointer to the thread manager for this block of code.
void *status_;
Keeps track of the exit status for the thread.
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