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

Commit eed30d1b authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Properly protect mFrameMetricsReporter" into sc-dev am: 1e67f861

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15194545

Change-Id: I8bf23a3e581bf39d0f95e32d13a32afb9eb4a577
parents ff616a27 1e67f861
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ cc_defaults {
        "-DATRACE_TAG=ATRACE_TAG_VIEW",
        "-DLOG_TAG=\"OpenGLRenderer\"",
        "-Wall",
        "-Wthread-safety",
        "-Wno-unused-parameter",
        "-Wunreachable-code",
        "-Werror",
+3 −3
Original line number Diff line number Diff line
@@ -99,7 +99,7 @@ JankTracker::JankTracker(ProfileDataContainer* globalData)
    mFrameIntervalLegacy = frameIntervalNanos;
}

void JankTracker::calculateLegacyJank(FrameInfo& frame) {
void JankTracker::calculateLegacyJank(FrameInfo& frame) REQUIRES(mDataMutex) {
    // Fast-path for jank-free frames
    int64_t totalDuration = frame.duration(sFrameStart, FrameInfoIndex::SwapBuffersCompleted);
    if (mDequeueTimeForgivenessLegacy && frame[FrameInfoIndex::DequeueBufferDuration] > 500_us) {
@@ -257,7 +257,7 @@ void JankTracker::finishFrame(FrameInfo& frame, std::unique_ptr<FrameMetricsRepo
    }
}

void JankTracker::recomputeThresholds(int64_t frameBudget) {
void JankTracker::recomputeThresholds(int64_t frameBudget) REQUIRES(mDataMutex) {
    if (mThresholdsFrameBudget == frameBudget) {
        return;
    }
@@ -308,7 +308,7 @@ void JankTracker::dumpFrames(int fd) {
    dprintf(fd, "\n---PROFILEDATA---\n\n");
}

void JankTracker::reset() {
void JankTracker::reset() REQUIRES(mDataMutex) {
    mFrames.clear();
    mData->reset();
    (*mGlobalData)->reset();
+1 −1
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@ public:
    // Calculates the 'legacy' jank information, i.e. with outdated refresh rate information and
    // without GPU completion or deadlined information.
    void calculateLegacyJank(FrameInfo& frame);
    void dumpStats(int fd) { dumpData(fd, &mDescription, mData.get()); }
    void dumpStats(int fd) NO_THREAD_SAFETY_ANALYSIS { dumpData(fd, &mDescription, mData.get()); }
    void dumpFrames(int fd);
    void reset();

+1 −1
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@
namespace android {
namespace uirenderer {

void ProfileDataContainer::freeData() {
void ProfileDataContainer::freeData() REQUIRES(mJankDataMutex) {
    if (mIsMapped) {
        munmap(mData, sizeof(ProfileData));
    } else {
+3 −2
Original line number Diff line number Diff line
@@ -37,8 +37,9 @@ public:
    void rotateStorage();
    void switchStorageToAshmem(int ashmemfd);

    ProfileData* get() { return mData; }
    ProfileData* operator->() { return mData; }
    ProfileData* get() NO_THREAD_SAFETY_ANALYSIS { return mData; }

    ProfileData* operator->() NO_THREAD_SAFETY_ANALYSIS { return mData; }

    std::mutex& getDataMutex() { return mJankDataMutex; }

Loading