diff options
Diffstat (limited to 'src/linux')
-rw-r--r-- | src/linux/wait3.c | 3 | ||||
-rw-r--r-- | src/linux/wait4.c | 12 |
2 files changed, 3 insertions, 12 deletions
diff --git a/src/linux/wait3.c b/src/linux/wait3.c index d1d91b05..61c73594 100644 --- a/src/linux/wait3.c +++ b/src/linux/wait3.c @@ -1,9 +1,8 @@ +#define _GNU_SOURCE #include <sys/wait.h> #include <sys/resource.h> #include "syscall.h" -pid_t wait4(pid_t, int *, int, struct rusage *); - pid_t wait3(int *status, int options, struct rusage *usage) { return wait4(-1, status, options, usage); diff --git a/src/linux/wait4.c b/src/linux/wait4.c index 5dd505a9..252beb0c 100644 --- a/src/linux/wait4.c +++ b/src/linux/wait4.c @@ -1,3 +1,4 @@ +#define _GNU_SOURCE #include <sys/wait.h> #include <sys/resource.h> #include <string.h> @@ -5,14 +6,5 @@ pid_t wait4(pid_t pid, int *status, int options, struct rusage *usage) { - pid_t ret = syscall4(__NR_wait4, pid, (long)status, options, (long)usage); - /* Fixup kernel time_t... */ - if (usage) { - long kusage[4]; - memcpy(kusage, usage, sizeof kusage); - memmove((struct timeval *)usage + 2, (long *)usage + 4, sizeof *usage - 2*sizeof(struct timeval)); - usage->ru_utime = (struct timeval){ kusage[0], kusage[1] }; - usage->ru_stime = (struct timeval){ kusage[2], kusage[3] }; - } - return ret; + return syscall4(__NR_wait4, pid, (long)status, options, (long)usage); } |