diff options
Diffstat (limited to 'libs/binder/RpcSession.cpp')
| -rw-r--r-- | libs/binder/RpcSession.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libs/binder/RpcSession.cpp b/libs/binder/RpcSession.cpp index ff50c16102..7d6bcfc2a1 100644 --- a/libs/binder/RpcSession.cpp +++ b/libs/binder/RpcSession.cpp @@ -324,16 +324,18 @@ void RpcSession::WaitForShutdownListener::onSessionAllIncomingThreadsEnded( } void RpcSession::WaitForShutdownListener::onSessionIncomingThreadEnded() { + mShutdownCount += 1; mCv.notify_all(); } void RpcSession::WaitForShutdownListener::waitForShutdown(RpcMutexUniqueLock& lock, const sp<RpcSession>& session) { - while (session->mConnections.mIncoming.size() > 0) { + while (mShutdownCount < session->mConnections.mMaxIncoming) { if (std::cv_status::timeout == mCv.wait_for(lock, std::chrono::seconds(1))) { ALOGE("Waiting for RpcSession to shut down (1s w/o progress): %zu incoming connections " - "still.", - session->mConnections.mIncoming.size()); + "still %zu/%zu fully shutdown.", + session->mConnections.mIncoming.size(), mShutdownCount.load(), + session->mConnections.mMaxIncoming); } } } |