From ae5f0d1a74b0ea04656ec71d8a1d300236235af2 Mon Sep 17 00:00:00 2001 From: Andrei Homescu Date: Sat, 25 Feb 2023 05:03:31 +0000 Subject: Revert "Revert "libbinder: Flush excess refs after single async transaction"" This reverts commit 655d5710fdb42524376649df0ef9953437479cd6. Reason for revert: fixed OnewayCallQueuingWithFds Bug: 259517277 Test: binderRpcTestNoKernel --gtest_filter="*OnewayCallQueueingWithFds*" --gtest_repeat=10 --gtest_break_on_failure Change-Id: I7c6440232dbed2b1b808de64ddb23a4292c96428 --- libs/binder/RpcState.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/binder/RpcState.cpp b/libs/binder/RpcState.cpp index b27f1028d4..1ea13f9a1c 100644 --- a/libs/binder/RpcState.cpp +++ b/libs/binder/RpcState.cpp @@ -1036,8 +1036,8 @@ processTransactInternalTailCall: return DEAD_OBJECT; } - if (it->second.asyncTodo.size() == 0) return OK; - if (it->second.asyncTodo.top().asyncNumber == it->second.asyncNumber) { + if (it->second.asyncTodo.size() != 0 && + it->second.asyncTodo.top().asyncNumber == it->second.asyncNumber) { LOG_RPC_DETAIL("Found next async transaction %" PRIu64 " on %" PRIu64, it->second.asyncNumber, addr); -- cgit v1.2.3-59-g8ed1b