aboutsummaryrefslogtreecommitdiff
path: root/posix/nanosleep.c
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2019-11-05 21:37:44 +0000
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2019-11-06 14:47:02 -0300
commit3537ecb49cf7177274607004c562d6f9ecc99474 (patch)
tree7321853007814993f485345e97b9b2ff61032a0c /posix/nanosleep.c
parent79a547b162657b3fa34d31917cc29f0e7af19e4c (diff)
downloadglibc-3537ecb49cf7177274607004c562d6f9ecc99474.zip
glibc-3537ecb49cf7177274607004c562d6f9ecc99474.tar.gz
glibc-3537ecb49cf7177274607004c562d6f9ecc99474.tar.bz2
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 <fweimer@redhat.com>
Diffstat (limited to 'posix/nanosleep.c')
-rw-r--r--posix/nanosleep.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/posix/nanosleep.c b/posix/nanosleep.c
index d8564c7..ed41c8c 100644
--- 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)