MediaUtils: Use delayed / lazy library loading
Postpone loading libutilscallstack until needed
to save memory.
Test: atest library_tests
Test: adb shell 'showmap $(pgrep mediametrics)'
Bug: 227536784
Change-Id: I3d4c9e9b6d854b013185e18fc20d4bec320df14e
diff --git a/media/utils/TimerThread.cpp b/media/utils/TimerThread.cpp
index 3556d7d..6de6b13 100644
--- a/media/utils/TimerThread.cpp
+++ b/media/utils/TimerThread.cpp
@@ -21,8 +21,8 @@
#include <unistd.h>
#include <vector>
+#include <mediautils/MediaUtilsDelayed.h>
#include <mediautils/TimerThread.h>
-#include <utils/CallStack.h>
#include <utils/ThreadDefs.h>
namespace android::mediautils {
@@ -73,13 +73,13 @@
if (analysis.timeoutTid != -1) {
timeoutStack = std::string("\ntimeout(")
.append(std::to_string(analysis.timeoutTid)).append(") callstack [\n")
- .append(tidCallStackString(analysis.timeoutTid)).append("]");
+ .append(getCallStackStringForTid(analysis.timeoutTid)).append("]");
}
std::string blockedStack;
if (analysis.HALBlockedTid != -1) {
blockedStack = std::string("\nblocked(")
.append(std::to_string(analysis.HALBlockedTid)).append(") callstack [\n")
- .append(tidCallStackString(analysis.HALBlockedTid)).append("]");
+ .append(getCallStackStringForTid(analysis.HALBlockedTid)).append("]");
}
return std::string("now ")
@@ -213,13 +213,6 @@
return requestsToString(timeoutRequests);
}
-/* static */
-std::string TimerThread::tidCallStackString(pid_t tid) {
- CallStack cs{};
- cs.update(0 /* ignoreDepth */, tid);
- return cs.toString().c_str();
-}
-
std::string TimerThread::Request::toString() const {
const auto scheduledString = formatTime(scheduled);
const auto deadlineString = formatTime(deadline);