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

Commit d5477e66 authored by Alex Buynytskyy's avatar Alex Buynytskyy
Browse files

Retry on signal.

Bug: 192282324
Fixes: 192282324
Test: atest PackageManagerShellCommandTests IncrementalAppErrorStatsTests
Change-Id: I96708ca93bc91a321503d60d6737f3afdfeee998
parent 4b61a185
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -133,8 +133,12 @@ static bool sendRequest(int fd, RequestType requestType, FileIdx fileIdx = -1,

static int waitForDataOrSignal(int fd, int event_fd) {
    struct pollfd pfds[2] = {{fd, POLLIN, 0}, {event_fd, POLLIN, 0}};
    // Wait indefinitely until either data is ready or stop signal is received
    // Wait until either data is ready or stop signal is received
    int res = poll(pfds, 2, PollTimeoutMs);
    if (res == -1 && errno == EINTR) {
        // Treat it the same as timeout and allow the caller to retry.
        return 0;
    }
    if (res <= 0) {
        return res;
    }