summaryrefslogtreecommitdiff
path: root/libs/binder/ProcessState.cpp
diff options
context:
space:
mode:
author Steven Moreland <smoreland@google.com> 2021-06-09 23:29:13 +0000
committer Steven Moreland <smoreland@google.com> 2021-06-10 04:01:05 +0000
commitada72bd2674ed8e04f6d8aa06803b058bad88560 (patch)
treec202b872ea4280c217451de077d8b1709f1ee33e /libs/binder/ProcessState.cpp
parent7f26fabeede6c534f8efd70a7925bcd3df415054 (diff)
libbinder: RPC process oneway w/ 'tail call'
When draining oneway commands (which must be serialized), we do a recursive call to process a transaction. However, this wouldn't even be considered to be a tailcall because of the complex destructors which need to run. So, instead we work around this w/ goto to the beginning of the function. The alternative here (to a 'goto') to consider is creating a more complex return type to processTransactInternal which would convince processTransact to re-issue the command. Though, this would be a somewhat larger refactor. Fixes: 190638569 Test: binderRpcTest (OnewayStressTest repeatedly on device doesn't fail for several minutes - failed without this) Change-Id: I9fbc75941452348e498849d5d59130487ef6cc44
Diffstat (limited to 'libs/binder/ProcessState.cpp')
0 files changed, 0 insertions, 0 deletions