summaryrefslogtreecommitdiffstats
path: root/lib/libc/gen/sleep.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/gen/sleep.c')
-rw-r--r--lib/libc/gen/sleep.c23
1 files changed, 8 insertions, 15 deletions
diff --git a/lib/libc/gen/sleep.c b/lib/libc/gen/sleep.c
index f558e36..6bb4ecd 100644
--- a/lib/libc/gen/sleep.c
+++ b/lib/libc/gen/sleep.c
@@ -42,17 +42,8 @@ __FBSDID("$FreeBSD$");
#include "libc_private.h"
-#pragma weak sleep
unsigned int
-sleep(unsigned int seconds)
-{
-
- return (((unsigned int (*)(unsigned int))
- __libc_interposing[INTERPOS_sleep])(seconds));
-}
-
-unsigned int
-__libc_sleep(unsigned int seconds)
+__sleep(unsigned int seconds)
{
struct timespec time_to_sleep;
struct timespec time_remaining;
@@ -62,17 +53,19 @@ __libc_sleep(unsigned int seconds)
* the maximum value for a time_t is >= INT_MAX.
*/
if (seconds > INT_MAX)
- return (seconds - INT_MAX + __libc_sleep(INT_MAX));
+ return (seconds - INT_MAX + __sleep(INT_MAX));
time_to_sleep.tv_sec = seconds;
time_to_sleep.tv_nsec = 0;
- if (_nanosleep(&time_to_sleep, &time_remaining) != -1)
+ if (((int (*)(const struct timespec *, struct timespec *))
+ __libc_interposing[INTERPOS_nanosleep])(
+ &time_to_sleep, &time_remaining) != -1)
return (0);
if (errno != EINTR)
return (seconds); /* best guess */
return (time_remaining.tv_sec +
- (time_remaining.tv_nsec != 0)); /* round up */
+ (time_remaining.tv_nsec != 0)); /* round up */
}
-__weak_reference(__libc_sleep, __sleep);
-__weak_reference(__libc_sleep, _sleep);
+__weak_reference(__sleep, sleep);
+__weak_reference(__sleep, _sleep);
OpenPOWER on IntegriCloud