summaryrefslogtreecommitdiff
path: root/ace/Thread_Manager.cpp
diff options
context:
space:
mode:
authornw1 <nw1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-12-14 18:35:25 +0000
committernw1 <nw1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-12-14 18:35:25 +0000
commitc657fe358cda7269bc1728904b9ca154ea01cf8d (patch)
treed9dee6f563a4f90fe487bf051c501aea2f0be0e7 /ace/Thread_Manager.cpp
parent9b6c3b4a6475c6fa4cad6dec171f3320db441e6e (diff)
downloadATCD-c657fe358cda7269bc1728904b9ca154ea01cf8d.tar.gz
Disable thr_joing when compiling in Chorus.
Diffstat (limited to 'ace/Thread_Manager.cpp')
-rw-r--r--ace/Thread_Manager.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/ace/Thread_Manager.cpp b/ace/Thread_Manager.cpp
index 774d9094786..35ccb8cc260 100644
--- a/ace/Thread_Manager.cpp
+++ b/ace/Thread_Manager.cpp
@@ -1260,7 +1260,7 @@ ACE_Thread_Manager::exit (void *status, int do_thr_exit)
td->cleanup_info_.cleanup_hook_ = 0;
}
-#if !defined (VXWORKS)
+#if !defined (VXWORKS) && !defined (CHORUS)
// Threads created with THR_DAEMON shouldn't exist here, but
// just to be safe, let's put it here.
@@ -1271,7 +1271,7 @@ ACE_Thread_Manager::exit (void *status, int do_thr_exit)
td->thr_state_ = ACE_THR_TERMINATED;
this->terminated_thr_queue_.enqueue_tail (*td);
}
-#endif /* ! VXWORKS */
+#endif /* ! VXWORKS && ! CHORUS */
// Remove thread descriptor from the table.
this->remove_thr (td, 0);
@@ -1341,14 +1341,16 @@ ACE_Thread_Manager::wait (const ACE_Time_Value *timeout,
// Release the guard, giving other threads a chance to run.
}
-#if !defined (VXWORKS)
- ACE_Thread_Descriptor item;
+#if !defined (VXWORKS) && ! defined (CHORUS)
+ // @@ VxWorks doesn't support thr_join (yet.) We are working
+ //on our implementation. Chorus'es thr_join seems broken.
+ ACE_Thread_Descriptor item;
- while (this->terminated_thr_queue_.dequeue_head (item) == 0)
- if (ACE_BIT_DISABLED (item.flags_, (THR_DETACHED | THR_DAEMON))
- || ACE_BIT_ENABLED (item.flags_, THR_JOINABLE))
- ACE_Thread::join (item.thr_handle_);
-#endif /* VXWORKS */
+ while (this->terminated_thr_queue_.dequeue_head (item) == 0)
+ if (ACE_BIT_DISABLED (item.flags_, (THR_DETACHED | THR_DAEMON))
+ || ACE_BIT_ENABLED (item.flags_, THR_JOINABLE))
+ ACE_Thread::join (item.thr_handle_);
+#endif /* ! VXWORKS && ! CHORUS */
#else
ACE_UNUSED_ARG (timeout);
#endif /* ACE_HAS_THREADS */