TimeCheck: Update code to support a callback
Callback will be used for binder statistics and logging.
Nest TimeCheck into mediautils namespace.
Copy input char * to a persistent string.
Log the thread id which is blocked to the debug message.
Separate code to a const shared ptr handler for easier analysis.
Add timecheck_tests which validate callback.
Test: atest libmediautils_test
Test: atest timecheck_tests
Bug: 219958414
Change-Id: I13c751ed90f39e41d7cfa3b8be51e40403787608
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index eb3c164..1dcaf6c 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -276,7 +276,7 @@
mMediaLogNotifier->run("MediaLogNotifier");
std::vector<pid_t> halPids;
mDevicesFactoryHal->getHalPids(&halPids);
- TimeCheck::setAudioHalPids(halPids);
+ mediautils::TimeCheck::setAudioHalPids(halPids);
// Notify that we have started (also called when audioserver service restarts)
mediametrics::LogItem(mMetricsId)
@@ -316,7 +316,7 @@
}
status_t AudioFlinger::setAudioHalPids(const std::vector<pid_t>& pids) {
- TimeCheck::setAudioHalPids(pids);
+ mediautils::TimeCheck::setAudioHalPids(pids);
return NO_ERROR;
}
@@ -4419,7 +4419,7 @@
std::string tag("IAudioFlinger command " +
std::to_string(static_cast<std::underlying_type_t<TransactionCode>>(code)));
- TimeCheck check(tag.c_str());
+ mediautils::TimeCheck check(tag.c_str());
// Make sure we connect to Audio Policy Service before calling into AudioFlinger:
// - AudioFlinger can call into Audio Policy Service with its global mutex held