From 2839c45cf9c29c11c588e5fdc868c00922f2ae6e Mon Sep 17 00:00:00 2001 From: Steven Moreland Date: Thu, 16 Feb 2023 01:48:01 +0000 Subject: libbinder: double cost for incorrect wait config If the process is configured incorrectly, waitForService waits for 1s. We'd like to make this an error, but when this was originally introduced, we didn't have functions to understand the threadpool. So, we start by making it a little bit more obvious. Bug: 269503132 Test: N/A Change-Id: I891a0b2ec4cdaff9fcfb6955dc6f08f0e4e3cfd1 --- libs/binder/IServiceManager.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'libs/binder/IServiceManager.cpp') diff --git a/libs/binder/IServiceManager.cpp b/libs/binder/IServiceManager.cpp index 2408307459..d4ef0b73a1 100644 --- a/libs/binder/IServiceManager.cpp +++ b/libs/binder/IServiceManager.cpp @@ -412,13 +412,11 @@ sp ServiceManagerShim::waitForService(const String16& name16) // command, so we hang indefinitely. std::unique_lock lock(waiter->mMutex); using std::literals::chrono_literals::operator""s; - waiter->mCv.wait_for(lock, 1s, [&] { - return waiter->mBinder != nullptr; - }); + waiter->mCv.wait_for(lock, 2s, [&] { return waiter->mBinder != nullptr; }); if (waiter->mBinder != nullptr) return waiter->mBinder; } - ALOGW("Waited one second for %s (is service started? Number of threads started in the " + ALOGW("Waited two seconds for %s (is service started? Number of threads started in the " "threadpool: %zu. Are binder threads started and available?)", name.c_str(), ProcessState::self()->getThreadPoolMaxTotalThreadCount()); -- cgit v1.2.3-59-g8ed1b