diff options
author | 2025-03-05 16:05:36 -0800 | |
---|---|---|
committer | 2025-03-05 16:05:36 -0800 | |
commit | d15c73e43ae77abec3e2c32b392a735e311f59ac (patch) | |
tree | b082bba551dd686a5846cc0efd3a90c08e50066f /libs/binder/RpcSession.cpp | |
parent | c7b95f653986a23a11ee724119333406ed19f16f (diff) | |
parent | e713cc137833c5fc736a2fef43e43f537ac3dcbb (diff) |
Merge "Support deleting param for preconnected sessions" into main am: 1175227bef am: e713cc1378
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3515750
Change-Id: I398ebd33d708db1a79fae2980e9317ab80cfa65c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'libs/binder/RpcSession.cpp')
-rw-r--r-- | libs/binder/RpcSession.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/libs/binder/RpcSession.cpp b/libs/binder/RpcSession.cpp index 16023ffa82..1f3a45a6df 100644 --- a/libs/binder/RpcSession.cpp +++ b/libs/binder/RpcSession.cpp @@ -188,7 +188,9 @@ status_t RpcSession::setupInetClient(const char* addr, unsigned int port) { } status_t RpcSession::setupPreconnectedClient(unique_fd fd, std::function<unique_fd()>&& request) { - return setupClient([&](const std::vector<uint8_t>& sessionId, bool incoming) -> status_t { + return setupClient([&, fd = std::move(fd), + request = std::move(request)](const std::vector<uint8_t>& sessionId, + bool incoming) mutable -> status_t { if (!fd.ok()) { fd = request(); if (!fd.ok()) return BAD_VALUE; @@ -476,8 +478,10 @@ sp<RpcServer> RpcSession::server() { return server; } -status_t RpcSession::setupClient(const std::function<status_t(const std::vector<uint8_t>& sessionId, - bool incoming)>& connectAndInit) { +template <typename Fn, + typename /* = std::enable_if_t<std::is_invocable_r_v< + status_t, Fn, const std::vector<uint8_t>&, bool>> */> +status_t RpcSession::setupClient(Fn&& connectAndInit) { { RpcMutexLockGuard _l(mMutex); LOG_ALWAYS_FATAL_IF(mStartedSetup, "Must only setup session once"); |