diff options
author | 2021-09-16 13:56:11 -0700 | |
---|---|---|
committer | 2021-09-16 15:07:33 -0700 | |
commit | c591b47532d3cc272d5ff80d4632d4b61f2a3b2e (patch) | |
tree | 0fe82a145d86fbf5e6a79dfd7369aa386d21c52b /libs/binder/RpcState.cpp | |
parent | 963b7bbac0352ce3d058bbd7e582930ff6c89e46 (diff) |
libbinder: RPC use DEAD_OBJECT over -ECANCELED
When we shutdown a connection with FdTrigger, we return -ECANCELED.
However, the next call to that FD will return with -EPIPE
(DEAD_OBJECT). It's not really important: if your call happens to get
interrupted, you'll get -ECANCELED or if your call happened to be
scheduled slightly later, you'd get DEAD_OBJECT. Actually, we don't care
to distinguish between these two cases because existing clients of
libbinder only have and consider DEAD_OBJECT now. Whether the server is
shutting down right now, or you make the call a tiny bit later, we want
to return the exact same error code in order to be consistent w/ the
behavior of libbinder when it uses the binder driver.
This was causing a flake in a later CL (fixing the 'Die' race), when
rpcSend failing causes the server to shutdown.
Bug: 200167417
Test: binderRpcTest 'Callbacks' case repeated 100s of times
Change-Id: Id2977f05eb249691326955e6f2424d4e5e08b417
Diffstat (limited to 'libs/binder/RpcState.cpp')
0 files changed, 0 insertions, 0 deletions