delete unused argument "ctx" from do_syscall

support waitid option "WNOWAIT"
This commit is contained in:
Tomoki Shirasawa
2015-02-23 17:14:14 +09:00
parent d9cf1d49b1
commit f35cc66d18
4 changed files with 66 additions and 53 deletions

View File

@ -1740,11 +1740,20 @@ sync_out:
}
case __NR_wait4: {
int status;
int ret;
pid_t pid = w.sr.args[0];
int options = w.sr.args[2];
siginfo_t info;
int opt;
opt = WEXITED | (options & WNOWAIT);
memset(&info, '\0', sizeof info);
while((ret = waitid(P_PID, pid, &info, opt)) == -1 &&
errno == EINTR);
if(ret == 0){
ret = info.si_pid;
}
while ((ret = waitpid(pid, &status, 0)) == -1 && errno == EINTR);
if(ret != pid) {
fprintf(stderr, "ERROR: waiting for %lu\n", w.sr.args[0]);
}