posix.cc (internal_gettimeofday): New function.

* posix.cc (internal_gettimeofday): New function.
	(_Jv_select): Use it.

From-SVN: r50443
This commit is contained in:
Tom Tromey 2002-03-08 16:35:10 +00:00 committed by Tom Tromey
parent 785a663c63
commit a785a805fc
2 changed files with 19 additions and 2 deletions

View File

@ -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/lang/natSystem.cc (currentTimeMillis): Now uses updated

View File

@ -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;