Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 27b53722 authored by Raymond Chiu's avatar Raymond Chiu
Browse files

Ensure FrameTracer is only initialized once.

Bug: 140307339
Test: adb shell service call SurfaceFlinger 1 (This triggers bootFinished)

Change-Id: I4a9c5587288d7a67d955e91bf3185fc2f2ccfd77
parent 9ddfce21
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -23,16 +23,19 @@
#include <android-base/stringprintf.h>

#include <algorithm>
#include <mutex>

PERFETTO_DEFINE_DATA_SOURCE_STATIC_MEMBERS(android::FrameTracer::FrameTracerDataSource);

namespace android {

void FrameTracer::initialize() {
    std::call_once(mInitializationFlag, [this]() {
        perfetto::TracingInitArgs args;
        args.backends = perfetto::kSystemBackend;
        perfetto::Tracing::Initialize(args);
        registerDataSource();
    });
}

void FrameTracer::registerDataSource() {
+1 −0
Original line number Diff line number Diff line
@@ -100,6 +100,7 @@ private:

    std::mutex mTraceMutex;
    std::unordered_map<int32_t, TraceRecord> mTraceTracker;
    std::once_flag mInitializationFlag;
};

} // namespace android