diff options
author | nanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-06-20 20:01:19 +0000 |
---|---|---|
committer | nanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-06-20 20:01:19 +0000 |
commit | 8f11302a6025e0eff9290048b23f16c71c42321c (patch) | |
tree | 76103a7b61f21f0850792b738113baae2578a56b | |
parent | 117ee821a87e689af6677e2ddb7ef042e496449c (diff) | |
download | ATCD-8f11302a6025e0eff9290048b23f16c71c42321c.tar.gz |
ChangeLogTag:Tue Jun 20 14:55:26 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | ChangeLogs/ChangeLog-02a | 7 | ||||
-rw-r--r-- | ChangeLogs/ChangeLog-03a | 7 | ||||
-rw-r--r-- | ace/OS.cpp | 45 |
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) \ |