libbinder: RPC save notify on transferring thread

We don't need to notify RpcServer when thread ownership is moved from a
connection thread to a session thread since this can't affect shutdown.

Bug: 185167543
Test: binderRpcTest, run binder_rpc_fuzzer for a minute
Change-Id: I8077beabe8176470f95b17a1f93c3fb731fdf8ca
diff --git a/libs/binder/RpcServer.cpp b/libs/binder/RpcServer.cpp
index 93f9709..d8ba2c6 100644
--- a/libs/binder/RpcServer.cpp
+++ b/libs/binder/RpcServer.cpp
@@ -258,18 +258,12 @@
         LOG_ALWAYS_FATAL_IF(threadId == server->mConnectingThreads.end(),
                             "Must establish connection on owned thread");
         thisThread = std::move(threadId->second);
-        ScopeGuard detachGuard = [&]() { thisThread.detach(); };
-        server->mConnectingThreads.erase(threadId);
-
-        // TODO(b/185167543): we currently can't disable this because we don't
-        // shutdown sessions as well, only the server itself. So, we need to
-        // keep this separate from the detachGuard, since we temporarily want to
-        // give a notification even when we pass ownership of the thread to
-        // a session.
-        ScopeGuard threadLifetimeGuard = [&]() {
+        ScopeGuard detachGuard = [&]() {
+            thisThread.detach();
             _l.unlock();
             server->mShutdownCv.notify_all();
         };
+        server->mConnectingThreads.erase(threadId);
 
         if (!idValid) {
             return;