Thread_Manager.
#include <ace/Thread_Manager.h>
class ACE_Thread_Descriptor : public ACE_Thread_Descriptor_Base {
public:friend class ACE_At_Thread_Exit;friend class ACE_Thread_Manager;friend class ACE_Double_Linked_List<ACE_Thread_Descriptor>;friend class ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor>;ACE_Thread_Descriptor (void);ACE_thread_t self (void);void self (ACE_hthread_t &);void dump (void) const;void log_msg_cleanup(ACE_Log_Msg* log_msg);int at_exit (ACE_At_Thread_Exit* cleanup);int at_exit (ACE_At_Thread_Exit& cleanup);int at_exit ( void *object, ACE_CLEANUP_FUNC cleanup_hook, void *param );~ACE_Thread_Descriptor (void);void acquire_release (void);ACE_INLINE_FOR_GNUC void set_next (ACE_Thread_Descriptor *td);ACE_INLINE_FOR_GNUC ACE_Thread_Descriptor *get_next (void);private:void reset (ACE_Thread_Manager *tm);void at_pop (int apply = 1);void at_push (ACE_At_Thread_Exit* cleanup, int is_owner = 0);void do_at_exit (void);void terminate (void);ACE_Log_Msg *log_msg_;ACE_At_Thread_Exit *at_exit_list_;ACE_Cleanup_Info cleanup_info_;ACE_Thread_Manager* tm_;ACE_DEFAULT_THREAD_MANAGER_LOCK *sync_;int terminated_;};
ACE_Thread_Descriptor (void);
ACE_thread_t self (void);
void self (ACE_hthread_t &);
void dump (void) const;
void log_msg_cleanup(ACE_Log_Msg* log_msg);
int at_exit (ACE_At_Thread_Exit* cleanup);
int at_exit (ACE_At_Thread_Exit& cleanup);
int at_exit (
void *object,
ACE_CLEANUP_FUNC cleanup_hook,
void *param
);
~ACE_Thread_Descriptor (void);
void acquire_release (void);
ACE_INLINE_FOR_GNUC void set_next (ACE_Thread_Descriptor *td);
ACE_INLINE_FOR_GNUC ACE_Thread_Descriptor *get_next (void);
next_ pointer. These are required by the
ACE_Free_List. ACE_INLINE is specified here because one version
of g++ couldn't grok this code without it.