summaryrefslogtreecommitdiff
path: root/ace/Thread_Manager.h
diff options
context:
space:
mode:
authornanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-05-16 19:36:04 +0000
committernanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-05-16 19:36:04 +0000
commitad97010110d33dc92c0089eb721f927daa6c9bf8 (patch)
treef9b5f56af7489c31734ad65c40cba236901d8208 /ace/Thread_Manager.h
parent411bf039563907d063583bcb65cdbc7b5751bad5 (diff)
downloadATCD-ad97010110d33dc92c0089eb721f927daa6c9bf8.tar.gz
Added ACE_Thread_Descriptor_Base
Diffstat (limited to 'ace/Thread_Manager.h')
-rw-r--r--ace/Thread_Manager.h38
1 files changed, 27 insertions, 11 deletions
diff --git a/ace/Thread_Manager.h b/ace/Thread_Manager.h
index d3b4b4561c7..147d8a9c530 100644
--- a/ace/Thread_Manager.h
+++ b/ace/Thread_Manager.h
@@ -68,7 +68,32 @@
class ACE_Task_Base;
class ACE_Thread_Manager;
-class ACE_Export ACE_Thread_Descriptor
+class ACE_Thread_Descriptor_Base
+{
+ // = TITLE
+ // Basic information for thread descriptors. These information
+ // gets extracted out because we need it after a thread is
+ // terminated.
+
+ friend class ACE_Thread_Manager;
+ friend class ACE_Double_Linked_List<ACE_Thread_Descriptor>;
+ friend class ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor>;
+public:
+ ACE_Thread_Descriptor_Base (void);
+ ~ACE_Thread_Descriptor_Base (void);
+
+protected:
+ ACE_hthread_t thr_handle_;
+ // Unique handle to thread (used by Win32 and AIX).
+
+ long flags_;
+ // Keeps track of whether this thread was created "detached" or not.
+ // If a thread is *not* created detached then if someone calls
+ // <ACE_Thread_Manager::wait>, we need to join with that thread (and
+ // close down the handle).
+};
+
+class ACE_Export ACE_Thread_Descriptor : public ACE_Thread_Descriptor_Base
{
// = TITLE
// Information for controlling threads that run under the control
@@ -146,9 +171,6 @@ private:
ACE_thread_t thr_id_;
// Unique thread ID.
- ACE_hthread_t thr_handle_;
- // Unique handle to thread (used by Win32 and AIX).
-
int grp_id_;
// Group ID.
@@ -160,12 +182,6 @@ private:
// @@ Note, this should be generalized to be a stack of
// <ACE_Cleanup_Info>s.
- long flags_;
- // Keeps track of whether this thread was created "detached" or not.
- // If a thread is *not* created detached then if someone calls
- // <ACE_Thread_Manager::wait>, we need to join with that thread (and
- // close down the handle).
-
ACE_Task_Base *task_;
// Pointer to an <ACE_Task_Base> or NULL if there's no
// <ACE_Task_Base>;
@@ -578,7 +594,7 @@ protected:
// affecting other thread's descriptor entries.
#if !defined (VXWORKS)
- ACE_Unbounded_Queue<ACE_Thread_Descriptor*> terminated_thr_queue_;
+ ACE_Unbounded_Queue<ACE_Thread_Descriptor_Base> terminated_thr_queue_;
// Collect terminated but not yet joined thread entries.
#endif /* VXWORKS */