Reference

ACE_Thread_Control(3)

Used to keep track of a thread's activities within its entry point function.

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