The generic version is straightforward. For Hurd, its nanosleep
implementation is moved to clock_nanosleep with adjustments from
generic unix implementation.
The generic clock_nanosleep unix version is also removed since
it calls nanosleep.
Checked on x86_64-linux-gnu and powerpc64le-linux-gnu.
Commit to blame in glibc:
commit 3537ecb49cf7177 274607004c562d6 f9ecc99474
Author: Adhemerval Zanella <email address hidden>
Date: Tue Nov 5 21:37:44 2019 +0000
Refactor nanosleep in terms of clock_nanosleep
The generic version is straightforward. For Hurd, its nanosleep
implementation is moved to clock_nanosleep with adjustments from
generic unix implementation.
The generic clock_nanosleep unix version is also removed since
it calls nanosleep.
Checked on x86_64-linux-gnu and powerpc64le- linux-gnu.
Reviewed-by: Florian Weimer <email address hidden>
diff --git a/posix/nanosleep.c b/posix/nanosleep.c .ed41c8cce7 100644
index d8564c7119.
--- a/posix/nanosleep.c
+++ b/posix/nanosleep.c
@@ -24,10 +24,13 @@ int
__nanosleep (const struct timespec *requested_time,
struct timespec *remaining)
{
- __set_errno (ENOSYS);
- return -1;
+ int ret = __clock_nanosleep (CLOCK_REALTIME, 0, requested_time, remaining);
+ if (ret != 0)
+ {
+ __set_errno (ret);
+ return -1;
+ }
+ return 0;
}
-stub_warning (nanosleep)
-
-hidden_def (__nanosleep)
+libc_hidden_def (__nanosleep)
weak_alias (__nanosleep, nanosleep)