summaryrefslogtreecommitdiffstats
path: root/lib/libc/gen/sleep.c
diff options
context:
space:
mode:
authorjasone <jasone@FreeBSD.org>2000-01-12 09:23:48 +0000
committerjasone <jasone@FreeBSD.org>2000-01-12 09:23:48 +0000
commit75903038bc52105bc7479fe5f2b75f22f10c1c50 (patch)
treec9e28eda650bbd7eaa3eb22c8d7c75d00a96a451 /lib/libc/gen/sleep.c
parent688bb99b3f790aad607b949661d0361486bbe346 (diff)
downloadFreeBSD-src-75903038bc52105bc7479fe5f2b75f22f10c1c50.zip
FreeBSD-src-75903038bc52105bc7479fe5f2b75f22f10c1c50.tar.gz
Add three-tier symbol naming in support of POSIX thread cancellation
points. For library functions, the pattern is __sleep() <-- _libc_sleep() <-- sleep(). The arrows represent weak aliases. For system calls, the pattern is _read() <-- _libc_read() <-- read().
Diffstat (limited to 'lib/libc/gen/sleep.c')
-rw-r--r--lib/libc/gen/sleep.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/libc/gen/sleep.c b/lib/libc/gen/sleep.c
index f87ffba..4a35cf0 100644
--- a/lib/libc/gen/sleep.c
+++ b/lib/libc/gen/sleep.c
@@ -45,7 +45,7 @@ static char rcsid[] =
#include <unistd.h>
unsigned int
-sleep(seconds)
+__sleep(seconds)
unsigned int seconds;
{
struct timespec time_to_sleep;
@@ -56,14 +56,17 @@ sleep(seconds)
* the maximum value for a time_t is >= INT_MAX.
*/
if (seconds > INT_MAX)
- return (seconds - INT_MAX + 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 (_libc_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 */
}
+
+__weak_reference(__sleep, _libc_sleep);
+__weak_reference(_libc_sleep, sleep);
OpenPOWER on IntegriCloud