libradiocompat CallbackManager: add extra logging
These logs are aimed at resolving a race condition around
setResponseFunctions. To be removed or degraded once it's resolved.
Bug: 405830123
Test: build and lunch_cvd; grep logs against CallbackManager
Flag: EXEMPT logs only
Change-Id: I225ce12ba7047a852e71dd94eb0c23cdb4bd5bb1
diff --git a/radio/aidl/compat/libradiocompat/CallbackManager.cpp b/radio/aidl/compat/libradiocompat/CallbackManager.cpp
index 96aaebc..77e94af 100644
--- a/radio/aidl/compat/libradiocompat/CallbackManager.cpp
+++ b/radio/aidl/compat/libradiocompat/CallbackManager.cpp
@@ -58,12 +58,15 @@
}
void CallbackManager::setResponseFunctionsDelayed() {
+ LOG(INFO) << "CallbackManager: defer setResponseFunctions";
std::unique_lock<std::mutex> lock(mDelayedSetterGuard);
mDelayedSetterDeadline = std::chrono::steady_clock::now() + kDelayedSetterDelay;
mDelayedSetterCv.notify_all();
}
void CallbackManager::delayedSetterThread() {
+ // TODO(b/405830123): remove or degrade logs from this file once the race condition is solved
+ LOG(INFO) << "CallbackManager: setting up delay thread";
while (!mDestroy) {
std::unique_lock<std::mutex> lock(mDelayedSetterGuard);
auto deadline = mDelayedSetterDeadline;
@@ -76,13 +79,16 @@
// waiting to set response functions, but not yet
if (*deadline > std::chrono::steady_clock::now()) {
+ LOG(INFO) << "CallbackManager: wait until " << deadline->time_since_epoch().count();
mDelayedSetterCv.wait_until(lock, *deadline);
continue;
}
+ LOG(INFO) << "CallbackManager: calling deferred setResponseFunctions";
mHidlHal->setResponseFunctions(mRadioResponse, mRadioIndication).assertOk();
mDelayedSetterDeadline = std::nullopt;
}
+ LOG(INFO) << "CallbackManager: delay thread destroyed";
}
} // namespace android::hardware::radio::compat