summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>1998-09-17 17:08:23 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>1998-09-17 17:08:23 +0000
commitf8d813340a39f07fb8e162e01f14772ae37be3d3 (patch)
tree9b2d420bdef6b4d7480953fb047ff80e3441fa45
parent21f55a6274b56b7e48a302c73dcab7f94887cbb8 (diff)
downloadATCD-f8d813340a39f07fb8e162e01f14772ae37be3d3.tar.gz
.
-rw-r--r--ChangeLog-98b11
-rw-r--r--ace/OS.cpp6
-rw-r--r--ace/OS.h7
-rw-r--r--examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp2
4 files changed, 16 insertions, 10 deletions
diff --git a/ChangeLog-98b b/ChangeLog-98b
index 9f967aca0de..17f9f49c034 100644
--- a/ChangeLog-98b
+++ b/ChangeLog-98b
@@ -1,11 +1,14 @@
Thu Sep 17 11:23:49 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+ * ace/OS: Modified ACE_THR_FUNC so that its signature is always
+ void *(*)(void *). We now have a new type called
+ ACE_THR_FUNC_INTERNAL that is defined for each different OS
+ platform, e.g., VxWorks, pSoS, et al.
+
* examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp (run_server): Oops,
we can't use ACE_THR_FUNC here since that has a different
- signature on VxWorks. So we'll just expand this a bit. I
- modeified David' change just a bit to make this more portable.
- Thanks to Raja Ati <rati@jupiter.montereynets.com> for reporting
- this.
+ signature on VxWorks. So we'll just expand this a bit. Thanks
+ to Raja Ati <rati@jupiter.montereynets.com> for reporting this.
Thu Sep 17 09:54:56 1998 David L. Levine <levine@cs.wustl.edu>
diff --git a/ace/OS.cpp b/ace/OS.cpp
index 0f12aaa20ca..29097c50112 100644
--- a/ace/OS.cpp
+++ b/ace/OS.cpp
@@ -1955,7 +1955,8 @@ ACE_Thread_Adapter::invoke (void)
#endif
// Extract the arguments.
- ACE_THR_FUNC func = this->user_func_;
+ ACE_THR_FUNC_INTERNAL func = ACE_reinterpret_cast (ACE_THR_FUNC_INTERNAL,
+ this->user_func_);
void *arg = this->arg_;
#if defined (ACE_WIN32) && defined (ACE_HAS_MFC) && (ACE_HAS_MFC != 0)
ACE_Thread_Descriptor *thr_desc = this->thr_desc_;
@@ -2002,7 +2003,8 @@ ACE_Thread_Adapter::invoke (void)
// If we changed this to 1, change the respective if in Task::svc_run to 0
#if 0
// Call the <Task->close> hook.
- if (func == (ACE_THR_FUNC) ACE_Task_Base::svc_run)
+ if (func == ACE_reinterpret_cast (ACE_THR_FUNC_INTERNAL,
+ ACE_Task_Base::svc_run))
{
ACE_Task_Base *task_ptr = (ACE_Task_Base *) arg;
ACE_Thread_Manager *thr_mgr_ptr = task_ptr->thr_mgr ();
diff --git a/ace/OS.h b/ace/OS.h
index 89c547d9919..8b4df52ebad 100644
--- a/ace/OS.h
+++ b/ace/OS.h
@@ -3850,13 +3850,14 @@ union semun
// Create some useful typedefs.
typedef const char **SYS_SIGLIST;
+typedef void *(*ACE_THR_FUNC)(void *);
// This is for C++ static methods.
# if defined (VXWORKS)
-typedef FUNCPTR ACE_THR_FUNC; // where typedef int (*FUNCPTR) (...)
+typedef FUNCPTR ACE_THR_FUNC_INTERNAL; // where typedef int (*FUNCPTR) (...)
# elif defined (ACE_PSOS)
-typedef void (*ACE_THR_FUNC)(void *);
+typedef void (*ACE_THR_FUNC_INTERNAL)(void *);
# else
-typedef void *(*ACE_THR_FUNC)(void *);
+typedef void *(*ACE_THR_FUNC_INTERNAL)(void *);
# endif /* VXWORKS */
extern "C" {
diff --git a/examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp b/examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp
index 835be2eed72..c51840de7e7 100644
--- a/examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp
+++ b/examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp
@@ -16,7 +16,7 @@ ACE_RCSID(SOCK_SAP, CPP_inserver, "$Id$")
static int verbose = 0;
static void
-run_server (void * (*server) (void *),
+run_server (ACE_THR_FUNC server,
ACE_HANDLE handle)
{
#if defined (ACE_HAS_THREADS)