diff options
author | nw1 <nw1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-12-14 18:35:25 +0000 |
---|---|---|
committer | nw1 <nw1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-12-14 18:35:25 +0000 |
commit | c657fe358cda7269bc1728904b9ca154ea01cf8d (patch) | |
tree | d9dee6f563a4f90fe487bf051c501aea2f0be0e7 /ace/Thread_Manager.cpp | |
parent | 9b6c3b4a6475c6fa4cad6dec171f3320db441e6e (diff) | |
download | ATCD-c657fe358cda7269bc1728904b9ca154ea01cf8d.tar.gz |
Disable thr_joing when compiling in Chorus.
Diffstat (limited to 'ace/Thread_Manager.cpp')
-rw-r--r-- | ace/Thread_Manager.cpp | 20 |
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 */ |