summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-06-20 20:01:19 +0000
committernanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-06-20 20:01:19 +0000
commit8f11302a6025e0eff9290048b23f16c71c42321c (patch)
tree76103a7b61f21f0850792b738113baae2578a56b
parent117ee821a87e689af6677e2ddb7ef042e496449c (diff)
downloadATCD-8f11302a6025e0eff9290048b23f16c71c42321c.tar.gz
ChangeLogTag:Tue Jun 20 14:55:26 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-rw-r--r--ChangeLog7
-rw-r--r--ChangeLogs/ChangeLog-02a7
-rw-r--r--ChangeLogs/ChangeLog-03a7
-rw-r--r--ace/OS.cpp45
4 files changed, 64 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index bd8cb55a27b..986910fe188 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Tue Jun 20 14:55:26 2000 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ace/OS.cpp: Applied patches for ACE_BEGINTHREADEX and
+ ACE_ENDTHREADEX for using IBM VisualAge C++ 4.0 on NT. Thanks
+ to Boris Kaminer <kaminer.boris@cherus.msk.ru> for providing the
+ patches.
+
Tue Jun 20 12:04:24 2000 Ossama Othman <ossama@uci.edu>
* ace/Makefile (ssl):
diff --git a/ChangeLogs/ChangeLog-02a b/ChangeLogs/ChangeLog-02a
index bd8cb55a27b..986910fe188 100644
--- a/ChangeLogs/ChangeLog-02a
+++ b/ChangeLogs/ChangeLog-02a
@@ -1,3 +1,10 @@
+Tue Jun 20 14:55:26 2000 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ace/OS.cpp: Applied patches for ACE_BEGINTHREADEX and
+ ACE_ENDTHREADEX for using IBM VisualAge C++ 4.0 on NT. Thanks
+ to Boris Kaminer <kaminer.boris@cherus.msk.ru> for providing the
+ patches.
+
Tue Jun 20 12:04:24 2000 Ossama Othman <ossama@uci.edu>
* ace/Makefile (ssl):
diff --git a/ChangeLogs/ChangeLog-03a b/ChangeLogs/ChangeLog-03a
index bd8cb55a27b..986910fe188 100644
--- a/ChangeLogs/ChangeLog-03a
+++ b/ChangeLogs/ChangeLog-03a
@@ -1,3 +1,10 @@
+Tue Jun 20 14:55:26 2000 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ace/OS.cpp: Applied patches for ACE_BEGINTHREADEX and
+ ACE_ENDTHREADEX for using IBM VisualAge C++ 4.0 on NT. Thanks
+ to Boris Kaminer <kaminer.boris@cherus.msk.ru> for providing the
+ patches.
+
Tue Jun 20 12:04:24 2000 Ossama Othman <ossama@uci.edu>
* ace/Makefile (ssl):
diff --git a/ace/OS.cpp b/ace/OS.cpp
index 4a6ccd8adfe..33198ef64a3 100644
--- a/ace/OS.cpp
+++ b/ace/OS.cpp
@@ -2253,10 +2253,51 @@ ACE_Thread_Adapter::inherit_log_msg (void)
this->log_msg_attributes_);
}
-#if defined (__IBMCPP__) && (__IBMCPP__ >= 400)
-#define ACE_ENDTHREADEX(STATUS) ::_endthreadex ()
+#if !defined(ACE_WIN32) && defined (__IBMCPP__) && (__IBMCPP__ >= 400)
+#define ACE_ENDTHREADEX(STATUS) ::_endthread ()
#define ACE_BEGINTHREADEX(STACK, STACKSIZE, ENTRY_POINT, ARGS, FLAGS, THR_ID) \
(*THR_ID = ::_beginthreadex ((void(_Optlink*)(void*))ENTRY_POINT, STACK, STACKSIZE, ARGS), *THR_ID)
+#elif defined(ACE_WIN32) && defined (__IBMCPP__) && (__IBMCPP__ >= 400)
+
+struct __IBMCPP__thread_params {
+ __IBMCPP__thread_params(ACE_THR_C_FUNC e, LPVOID a)
+ :entry_point(e),args(a) {}
+ ACE_THR_C_FUNC entry_point;
+ LPVOID args;
+};
+
+#pragma handler(initThread)
+extern "C" DWORD __stdcall __IBMCPP__initThread(void *arg)
+{
+ // Must reset 387 since using CreateThread
+ _fpreset();
+
+ // Dispatch user function...
+ auto_ptr<__IBMCPP__thread_params> parms((__IBMCPP__thread_params *)arg);
+ (*parms->entry_point)(parms->args);
+ _endthread();
+ return 0;
+}
+
+HANDLE WINAPI __IBMCPP__beginthreadex(void *stack,
+ DWORD stacksize,
+ ACE_THR_C_FUNC entry_point,
+ LPVOID args,
+ DWORD flags,
+ LPDWORD thr_id)
+{
+ return CreateThread(NULL,
+ stacksize,
+ (LPTHREAD_START_ROUTINE)__IBMCPP__initThread,
+ new __IBMCPP__thread_params(entry_point, args),
+ flags,
+ thr_id);
+}
+
+#define ACE_ENDTHREADEX(STATUS) ::_endthread ()
+#define ACE_BEGINTHREADEX(STACK, STACKSIZE, ENTRY_POINT, ARGS, FLAGS, THR_ID) \
+ __IBMCPP__beginthreadex(STACK, STACKSIZE, ENTRY_POINT, ARGS, FLAGS, THR_ID)
+
#elif defined (ACE_HAS_WINCE) && defined (UNDER_CE) && (UNDER_CE >= 211)
#define ACE_ENDTHREADEX(STATUS) ExitThread ((DWORD) STATUS)
#define ACE_BEGINTHREADEX(STACK, STACKSIZE, ENTRY_POINT, ARGS, FLAGS, THR_ID) \