summaryrefslogtreecommitdiff
path: root/libc
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2003-12-30 10:45:45 +0000
committerEric Andersen <andersen@codepoet.org>2003-12-30 10:45:45 +0000
commit5c62002cc864b92f9c1517449e197c55adb9ff44 (patch)
treec8fd2041c99369d8f54ed6be394695a02fd38919 /libc
parent8d532c51318bad2436880ecac972c9dfa3996c9b (diff)
Make sleep behave itself properly inthe presence of SIGCHLD
Diffstat (limited to 'libc')
-rw-r--r--libc/unistd/sleep.c9
-rw-r--r--libc/unistd/usleep.c10
2 files changed, 8 insertions, 11 deletions
diff --git a/libc/unistd/sleep.c b/libc/unistd/sleep.c
index 2b3187ebc..20689da0e 100644
--- a/libc/unistd/sleep.c
+++ b/libc/unistd/sleep.c
@@ -23,17 +23,14 @@
#include <signal.h>
#include <unistd.h>
-#if 1
+#if 0
/* This is a quick and dirty, but not 100% compliant with
* the stupid SysV SIGCHLD vs. SIG_IGN behaviour. It is
* fine unless you are messing with SIGCHLD... */
unsigned int sleep (unsigned int sec)
{
unsigned int res;
- struct timespec ts = {
- tv_sec: (long int) sec,
- tv_nsec: 0
- };
+ struct timespec ts = { .tv_sec = (long int) seconds, .tv_nsec = 0 };
res = nanosleep(&ts, &ts);
if (res) res = (unsigned int) ts.tv_sec + (ts.tv_nsec >= 500000000L);
return res;
@@ -46,7 +43,7 @@ unsigned int sleep (unsigned int sec)
behaviour for this syscall. Therefore we have to emulate it here. */
unsigned int sleep (unsigned int seconds)
{
- struct timespec ts = { tv_sec: (long int) seconds, tv_nsec: 0 };
+ struct timespec ts = { .tv_sec = (long int) seconds, .tv_nsec = 0 };
sigset_t set, oset;
unsigned int result;
diff --git a/libc/unistd/usleep.c b/libc/unistd/usleep.c
index 25979681d..55e8f3fb7 100644
--- a/libc/unistd/usleep.c
+++ b/libc/unistd/usleep.c
@@ -5,9 +5,9 @@
int usleep (__useconds_t usec)
{
- const struct timespec ts = {
- tv_sec: (long int)(usec / 1000000),
- tv_nsec: (long int) (usec % 1000000) * 1000ul };
- return(nanosleep(&ts, NULL));
+ const struct timespec ts = {
+ .tv_sec = (long int) (usec / 1000000),
+ .tv_nsec = (long int) (usec % 1000000) * 1000ul
+ };
+ return(nanosleep(&ts, NULL));
}
-