about summary refs log tree commit diff
path: root/hurd/hurdselect.c
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2019-11-07 09:52:11 +0100
committerFlorian Weimer <fweimer@redhat.com>2019-11-07 09:54:33 +0100
commita673c07af3bcfa24432c3fd8a1dea12f931ee903 (patch)
treecf93e6dae43f5ff17f961a584b90f3bd224c42fc /hurd/hurdselect.c
parent50471a8613dc487dce8b7cabc35a01b4b5b242ea (diff)
downloadglibc-a673c07af3bcfa24432c3fd8a1dea12f931ee903.tar.gz
glibc-a673c07af3bcfa24432c3fd8a1dea12f931ee903.tar.xz
glibc-a673c07af3bcfa24432c3fd8a1dea12f931ee903.zip
hurd: Use __clock_gettime in _hurd_select
The __gettimeofday references caused check-localplt failures after
commit 5e46749c64d5.

Fixes: 5e46749c64d51f50f8511ed99c1266d7c13e182b
Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Change-Id: Ia6da4045157a5bbccc67d79e881d7592e6f8a890
Diffstat (limited to 'hurd/hurdselect.c')
-rw-r--r--hurd/hurdselect.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/hurd/hurdselect.c b/hurd/hurdselect.c
index 79cd20b03e..6a174bc88a 100644
--- a/hurd/hurdselect.c
+++ b/hurd/hurdselect.c
@@ -88,7 +88,7 @@ _hurd_select (int nfds,
     reply_msgid = IO_SELECT_REPLY_MSGID;
   else
     {
-      struct timeval now;
+      struct timespec now;
 
       if (timeout->tv_sec < 0 || ! valid_nanoseconds (timeout->tv_nsec))
 	{
@@ -96,12 +96,12 @@ _hurd_select (int nfds,
 	  return -1;
 	}
 
-      err = __gettimeofday(&now, NULL);
+      err = __clock_gettime (CLOCK_REALTIME, &now);
       if (err)
 	return -1;
 
       ts.tv_sec = now.tv_sec + timeout->tv_sec;
-      ts.tv_nsec = now.tv_usec * 1000 + timeout->tv_nsec;
+      ts.tv_nsec = now.tv_nsec + timeout->tv_nsec;
 
       if (ts.tv_nsec >= 1000000000)
 	{
@@ -175,8 +175,7 @@ _hurd_select (int nfds,
       if (error)
 	{
 	  /* Set timeout to 0.  */
-	  struct timeval now;
-	  err = __gettimeofday(&now, NULL);
+	  err = __clock_gettime (CLOCK_REALTIME, &ts);
 	  if (err)
 	    {
 	      /* Really bad luck.  */
@@ -192,8 +191,6 @@ _hurd_select (int nfds,
 	      errno = err;
 	      return -1;
 	    }
-	  ts.tv_sec = now.tv_sec;
-	  ts.tv_nsec = now.tv_usec * 1000;
 	  reply_msgid = IO_SELECT_TIMEOUT_REPLY_MSGID;
 	}