summaryrefslogtreecommitdiff
path: root/ace
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-09-17 01:15:55 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-09-17 01:15:55 +0000
commit046f1888fea6167aca23f80509ccb6c29fdb7370 (patch)
tree682bd1c5478de683f275718425bce087dbddea0d /ace
parent7896051e72cdb90e9fc4b2abdba64d8e8966f76f (diff)
downloadATCD-046f1888fea6167aca23f80509ccb6c29fdb7370.tar.gz
ChangeLogTag:Wed Sep 16 20:09:01 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
Diffstat (limited to 'ace')
-rw-r--r--ace/OS.h9
-rw-r--r--ace/OS.i8
2 files changed, 10 insertions, 7 deletions
diff --git a/ace/OS.h b/ace/OS.h
index c2146dfa345..67c1d7bc4bf 100644
--- a/ace/OS.h
+++ b/ace/OS.h
@@ -2513,15 +2513,16 @@ typedef const struct msghdr ACE_SENDMSG_TYPE;
# endif /* ACE_HAS_BROKEN_SENDMSG */
# if defined (ACE_HAS_BROKEN_RANDR)
-// The SunOS 5.x version of rand_r is inconsistent with the header files...
+// The SunOS 5.4.X version of rand_r is inconsistent with the header
+// files...
typedef u_int ACE_RANDR_TYPE;
extern "C" int rand_r (ACE_RANDR_TYPE seed);
# else
# if defined (HPUX_10)
// HP-UX 10.x's stdlib.h (long *) doesn't match that man page (u_int *)
-typedef long *ACE_RANDR_TYPE;
+typedef long ACE_RANDR_TYPE;
# else
-typedef u_int *ACE_RANDR_TYPE;
+typedef u_int ACE_RANDR_TYPE;
# endif /* HPUX_10 */
# endif /* ACE_HAS_BROKEN_RANDR */
@@ -4821,7 +4822,7 @@ public:
// = A set of wrappers for random number operations.
static int rand (void);
- static int rand_r (ACE_RANDR_TYPE seed);
+ static int rand_r (ACE_RANDR_TYPE &seed);
static void srand (u_int seed);
// = A set of wrappers for readers/writer locks.
diff --git a/ace/OS.i b/ace/OS.i
index 815ae153a02..040e241f8b9 100644
--- a/ace/OS.i
+++ b/ace/OS.i
@@ -667,12 +667,12 @@ extern "C" {
# endif /* DIGITAL_UNIX */
ACE_INLINE int
-ACE_OS::rand_r (ACE_RANDR_TYPE seed)
+ACE_OS::rand_r (ACE_RANDR_TYPE &seed)
{
// ACE_TRACE ("ACE_OS::rand_r");
# if defined (ACE_HAS_REENTRANT_FUNCTIONS)
# if defined (DIGITAL_UNIX)
- ACE_OSCALL_RETURN (::_Prand_r (seed), int, -1);
+ ACE_OSCALL_RETURN (::_Prand_r (&seed), int, -1);
# elif defined (HPUX_10)
// rand() is thread-safe on HP-UX 10. rand_r's signature is not consistent
// with latest POSIX and will change in a future HP-UX release so that it
@@ -680,8 +680,10 @@ ACE_OS::rand_r (ACE_RANDR_TYPE seed)
// removed, and just call rand_r.
ACE_UNUSED_ARG (seed);
ACE_OSCALL_RETURN (::rand(), int, -1);
-# else
+# elif defined (ACE_HAS_BROKEN_RANDR)
ACE_OSCALL_RETURN (::rand_r (seed), int, -1);
+# else
+ ACE_OSCALL_RETURN (::rand_r (&seed), int, -1);
# endif /* DIGITAL_UNIX */
# else
ACE_UNUSED_ARG (seed);