Loading cmds/atrace/atrace.cpp +10 −6 Original line number Original line Diff line number Diff line Loading @@ -26,7 +26,6 @@ #include <stdio.h> #include <stdio.h> #include <stdlib.h> #include <stdlib.h> #include <string.h> #include <string.h> #include <sys/sendfile.h> #include <time.h> #include <time.h> #include <unistd.h> #include <unistd.h> #include <zlib.h> #include <zlib.h> Loading Loading @@ -974,11 +973,16 @@ static void dumpTrace(int outFd) fprintf(stderr, "error cleaning up zlib: %d\n", result); fprintf(stderr, "error cleaning up zlib: %d\n", result); } } } else { } else { ssize_t sent = 0; char buf[4096]; while ((sent = sendfile(outFd, traceFD, NULL, 64*1024*1024)) > 0); ssize_t rc; if (sent == -1) { while ((rc = TEMP_FAILURE_RETRY(read(traceFD, buf, sizeof(buf)))) > 0) { fprintf(stderr, "error dumping trace: %s (%d)\n", strerror(errno), if (!android::base::WriteFully(outFd, buf, rc)) { errno); fprintf(stderr, "error writing trace: %s\n", strerror(errno)); break; } } if (rc == -1) { fprintf(stderr, "error dumping trace: %s\n", strerror(errno)); } } } } Loading Loading
cmds/atrace/atrace.cpp +10 −6 Original line number Original line Diff line number Diff line Loading @@ -26,7 +26,6 @@ #include <stdio.h> #include <stdio.h> #include <stdlib.h> #include <stdlib.h> #include <string.h> #include <string.h> #include <sys/sendfile.h> #include <time.h> #include <time.h> #include <unistd.h> #include <unistd.h> #include <zlib.h> #include <zlib.h> Loading Loading @@ -974,11 +973,16 @@ static void dumpTrace(int outFd) fprintf(stderr, "error cleaning up zlib: %d\n", result); fprintf(stderr, "error cleaning up zlib: %d\n", result); } } } else { } else { ssize_t sent = 0; char buf[4096]; while ((sent = sendfile(outFd, traceFD, NULL, 64*1024*1024)) > 0); ssize_t rc; if (sent == -1) { while ((rc = TEMP_FAILURE_RETRY(read(traceFD, buf, sizeof(buf)))) > 0) { fprintf(stderr, "error dumping trace: %s (%d)\n", strerror(errno), if (!android::base::WriteFully(outFd, buf, rc)) { errno); fprintf(stderr, "error writing trace: %s\n", strerror(errno)); break; } } if (rc == -1) { fprintf(stderr, "error dumping trace: %s\n", strerror(errno)); } } } } Loading