aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2002-03-08 16:31:28 +0000
committerTom Tromey <tromey@gcc.gnu.org>2002-03-08 16:31:28 +0000
commit7258310ad8ee78e06ed2d7ed88a4c01fc584b50a (patch)
tree2bfe80e53394fccad5abf00a040a6681c74858e5 /libjava
parent81034129233e4dc9b8c770ab836bda4260652c6a (diff)
downloadgcc-7258310ad8ee78e06ed2d7ed88a4c01fc584b50a.zip
gcc-7258310ad8ee78e06ed2d7ed88a4c01fc584b50a.tar.gz
gcc-7258310ad8ee78e06ed2d7ed88a4c01fc584b50a.tar.bz2
posix.cc (internal_gettimeofday): New function.
* posix.cc (internal_gettimeofday): New function. (_Jv_select): Use it. From-SVN: r50442
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog5
-rw-r--r--libjava/posix.cc16
2 files changed, 19 insertions, 2 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 7483b4c..39a5656 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,8 @@
+2002-03-08 Tom Tromey <tromey@redhat.com>
+
+ * posix.cc (internal_gettimeofday): New function.
+ (_Jv_select): Use it.
+
2002-03-07 Adam Megacz <adam@xwt.org>
* java/net/natPlainSocketImpl.cc: Changed USE_WINSOCK to
diff --git a/libjava/posix.cc b/libjava/posix.cc
index 56241d2..f4b7696 100644
--- a/libjava/posix.cc
+++ b/libjava/posix.cc
@@ -62,6 +62,18 @@ _Jv_platform_initialize (void)
#endif
}
+static inline void
+internal_gettimeofday (struct timeval *result)
+{
+#if defined (HAVE_GETTIMEOFDAY)
+ gettimeofday (result, NULL);
+#else
+ jlong val = _Jv_platform_gettimeofday ();
+ result->tv_sec = val / 1000;
+ result->tv_usec = (val % 1000) * 1000;
+#endif /* HAVE_GETTIMEOFDAY */
+}
+
// A wrapper for select() which ignores EINTR.
int
_Jv_select (int n, fd_set *readfds, fd_set *writefds,
@@ -72,7 +84,7 @@ _Jv_select (int n, fd_set *readfds, fd_set *writefds,
struct timeval end, delay;
if (timeout)
{
- _Jv_platform_gettimeofday (&end);
+ internal_gettimeofday (&end);
end.tv_usec += timeout->tv_usec;
if (end.tv_usec >= 1000000)
{
@@ -102,7 +114,7 @@ _Jv_select (int n, fd_set *readfds, fd_set *writefds,
struct timeval after;
if (timeout)
{
- _Jv_platform_gettimeofday (&after);
+ internal_gettimeofday (&after);
// Now compute new timeout argument.
delay.tv_usec = end.tv_usec - after.tv_usec;
delay.tv_sec = end.tv_sec - after.tv_sec;