summaryrefslogtreecommitdiff
path: root/ace/Thread_Manager.cpp
diff options
context:
space:
mode:
authorlevine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-10-13 15:06:59 +0000
committerlevine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-10-13 15:06:59 +0000
commit12ddba838432c7316d69d63481ef3ba881e566d9 (patch)
tree43d00d96fc9704d7efc8db79a8c2ed06f625b66f /ace/Thread_Manager.cpp
parent18f83e2ef0be57046a914f1498ce8a94125348d6 (diff)
downloadATCD-12ddba838432c7316d69d63481ef3ba881e566d9.tar.gz
(join): replaced __xlC__ test with _AIX. That way, g++ and xlC will
both use the three-arg join call on AIX.
Diffstat (limited to 'ace/Thread_Manager.cpp')
-rw-r--r--ace/Thread_Manager.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/ace/Thread_Manager.cpp b/ace/Thread_Manager.cpp
index a38d05bbca2..49c3868f282 100644
--- a/ace/Thread_Manager.cpp
+++ b/ace/Thread_Manager.cpp
@@ -154,7 +154,7 @@ ACE_Thread_Descriptor::terminate ()
#endif /* ACE_WIN32 */
}
#endif /* ! VXWORKS */
-
+
// Remove thread descriptor from the table.
if (this->tm_ != 0)
tm_->remove_thr (this, close_handle);
@@ -1480,15 +1480,18 @@ ACE_Thread_Manager::join (ACE_thread_t tid, void **status)
// Didn't find the thread we want or the thread is not joinable.
}
-# if defined (__xlC__)
+# if defined (_AIX)
// The AIX xlC compiler does not match the proper function here - it
// confuses ACE_Thread::join(ACE_thread_t, ACE_thread_t *, void **=0) and
// ACE_Thread::join(ACE_hthread_t, void **=0). At least at 3.1.4.7 and .8.
// The 2nd arg is ignored for pthreads anyway.
+
+ // And, g++ on AIX needs the three-arg thr_join, also, to pick up the
+ // proper version from the AIX libraries.
if (ACE_Thread::join (tdb.thr_handle_, &tdb.thr_handle_, status) == -1)
-# else
+# else /* ! _AIX */
if (ACE_Thread::join (tdb.thr_handle_, status) == -1)
-# endif /* __xlC__ */
+# endif /* ! _AIX */
return -1;
# if defined (ACE_HAS_PTHREADS_DRAFT4) && defined (ACE_LACKS_SETDETACH)