X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=src%2Fstdio%2Fpclose.c;h=7fb76ed42622f92f2cdb3a8f9ee04bc583d43db8;hp=c2fe7a24a85107e95e58c8aa947524156dcca6b6;hb=f1b23d41cff432a8d0939af427fa005b4a4f95d7;hpb=0b44a0315b47dd8eced9f3b7f31580cf14bbfc01 diff --git a/src/stdio/pclose.c b/src/stdio/pclose.c index c2fe7a24..7fb76ed4 100644 --- a/src/stdio/pclose.c +++ b/src/stdio/pclose.c @@ -1,10 +1,12 @@ #include "stdio_impl.h" +#include "syscall.h" int pclose(FILE *f) { - int status; + int status, r; + pid_t pid = f->pipe_pid; fclose(f); - while (waitpid(f->pipe_pid, &status, 0) == -1) - if (errno != EINTR) return -1; + while ((r=__syscall(SYS_wait4, pid, &status, 0, 0)) == -EINTR); + if (r<0) return __syscall_ret(r); return status; }