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

Commit d2ae9cd5 authored by Mikhail Naganov's avatar Mikhail Naganov
Browse files

audiohal: Check for EINTR and retry when waiting for EventFlag

EINTR can be returned in the case when a futex wait has been
interrupted by a signal. We need to retry in that case.

Bug: 35813113
Change-Id: I7eaee5298f5c0bc5cd62309c3fd8349ee3eae629
Test: make
parent 881fc5c6
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -194,8 +194,8 @@ retry:
        }
        }
        return analyzeResult(retval);
        return analyzeResult(retval);
    }
    }
    if (ret == -EAGAIN) {
    if (ret == -EAGAIN || ret == -EINTR) {
        // This normally retries no more than once.
        // Spurious wakeup. This normally retries no more than once.
        goto retry;
        goto retry;
    }
    }
    return ret;
    return ret;
+4 −4
Original line number Original line Diff line number Diff line
@@ -356,8 +356,8 @@ retry:
        }
        }
        return ret;
        return ret;
    }
    }
    if (ret == -EAGAIN) {
    if (ret == -EAGAIN || ret == -EINTR) {
        // This normally retries no more than once.
        // Spurious wakeup. This normally retries no more than once.
        goto retry;
        goto retry;
    }
    }
    return ret;
    return ret;
@@ -616,8 +616,8 @@ retry:
        }
        }
        return ret;
        return ret;
    }
    }
    if (ret == -EAGAIN) {
    if (ret == -EAGAIN || ret == -EINTR) {
        // This normally retries no more than once.
        // Spurious wakeup. This normally retries no more than once.
        goto retry;
        goto retry;
    }
    }
    return ret;
    return ret;