Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c1c9354a authored by Josh Gao's avatar Josh Gao Committed by Gerrit Code Review
Browse files

Merge "atrace: don't use sendfile."

parents d03d569f d3d36e71
Loading
Loading
Loading
Loading
+10 −6
Original line number Original line Diff line number Diff line
@@ -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>
@@ -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));
        }
        }
    }
    }