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
diff --git a/libs/binder/IServiceManager.cpp b/libs/binder/IServiceManager.cpp
index 2408307..d4ef0b7 100644
--- a/libs/binder/IServiceManager.cpp
+++ b/libs/binder/IServiceManager.cpp
@@ -412,13 +412,11 @@
// command, so we hang indefinitely.
std::unique_lock<std::mutex> 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());