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

Commit 7d5420f6 authored by Steven Moreland's avatar Steven Moreland
Browse files

RPC Binder: defork FdTrigger early exit

Avoid system call in multi-threaded case when we already know the
process is dead.

Bug: 416772676
Test: binderRpcTest
Flag: EXEMPT .
Change-Id: I0bf052451c7a564896724a752b3a42e0ed76e0f4
parent 1c9af499
Loading
Loading
Loading
Loading
+1 −3
Original line number Original line Diff line number Diff line
@@ -61,11 +61,9 @@ bool FdTrigger::isTriggered() {
}
}


status_t FdTrigger::triggerablePoll(const android::RpcTransportFd& transportFd, int16_t event) {
status_t FdTrigger::triggerablePoll(const android::RpcTransportFd& transportFd, int16_t event) {
#ifdef BINDER_RPC_SINGLE_THREADED
    if (isTriggered()) {
    if (mTriggered) {
        return DEAD_OBJECT;
        return DEAD_OBJECT;
    }
    }
#endif


    LOG_ALWAYS_FATAL_IF(event == 0, "triggerablePoll %d with event 0 is not allowed",
    LOG_ALWAYS_FATAL_IF(event == 0, "triggerablePoll %d with event 0 is not allowed",
                        transportFd.fd.get());
                        transportFd.fd.get());