aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2025-01-12 22:39:30 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2025-01-12 22:47:00 +0100
commitb31d490222d9bff761bfc4558a141a8916b6c57d (patch)
treed6bbb23d40997ee6fe590f2387be93b9abe75dff
parent15b345935cfca09c24d3e5414de22bb2b7aa5857 (diff)
downloadglibc-b31d490222d9bff761bfc4558a141a8916b6c57d.zip
glibc-b31d490222d9bff761bfc4558a141a8916b6c57d.tar.gz
glibc-b31d490222d9bff761bfc4558a141a8916b6c57d.tar.bz2
hurd: Add CLOCK_MONOTONIC to clock_nanosleep
-rw-r--r--sysdeps/mach/clock_nanosleep.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sysdeps/mach/clock_nanosleep.c b/sysdeps/mach/clock_nanosleep.c
index 567e24d..c9373ed 100644
--- a/sysdeps/mach/clock_nanosleep.c
+++ b/sysdeps/mach/clock_nanosleep.c
@@ -25,7 +25,7 @@
#include <sysdep-cancel.h>
static int
-nanosleep_call (const struct timespec *req, struct timespec *rem)
+nanosleep_call (clockid_t clock_id, const struct timespec *req, struct timespec *rem)
{
mach_port_t recv;
struct timespec before;
@@ -38,7 +38,7 @@ nanosleep_call (const struct timespec *req, struct timespec *rem)
recv = __mach_reply_port ();
if (rem != NULL)
- __clock_gettime (CLOCK_REALTIME, &before);
+ __clock_gettime (clock_id, &before);
int cancel_oldtype = LIBC_CANCEL_ASYNC();
err = __mach_msg (NULL, MACH_RCV_MSG|MACH_RCV_TIMEOUT|MACH_RCV_INTERRUPT,
@@ -52,7 +52,7 @@ nanosleep_call (const struct timespec *req, struct timespec *rem)
if (rem != NULL)
{
struct timespec after, elapsed;
- __clock_gettime (CLOCK_REALTIME, &after);
+ __clock_gettime (clock_id, &after);
timespec_sub (&elapsed, &after, &before);
timespec_sub (rem, req, &elapsed);
}
@@ -67,7 +67,7 @@ int
__clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
struct timespec *rem)
{
- if (clock_id != CLOCK_REALTIME
+ if ((clock_id != CLOCK_REALTIME && clock_id != CLOCK_MONOTONIC)
|| req->tv_sec < 0
|| !valid_nanoseconds (req->tv_nsec)
|| (flags != 0 && flags != TIMER_ABSTIME))
@@ -105,7 +105,7 @@ __clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
rem = NULL;
}
- return nanosleep_call (req, rem);
+ return nanosleep_call (clock_id, req, rem);
}
libc_hidden_def (__clock_nanosleep)
versioned_symbol (libc, __clock_nanosleep, clock_nanosleep, GLIBC_2_17);