Loading services/surfaceflinger/Scheduler/VSyncDispatchTimerQueue.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -237,6 +237,7 @@ VSyncDispatchTimerQueue::VSyncDispatchTimerQueue(std::unique_ptr<TimeKeeper> tk, VSyncDispatchTimerQueue::~VSyncDispatchTimerQueue() { std::lock_guard lock(mMutex); mRunning = false; cancelTimer(); for (auto& [_, entry] : mCallbacks) { ALOGE("Forgot to unregister a callback on VSyncDispatch!"); Loading Loading @@ -305,6 +306,10 @@ void VSyncDispatchTimerQueue::timerCallback() { std::vector<Invocation> invocations; { std::lock_guard lock(mMutex); if (!mRunning) { ALOGD("TimerQueue is not running. Skipping callback."); return; } auto const now = mTimeKeeper->now(); mLastTimerCallback = now; for (auto it = mCallbacks.begin(); it != mCallbacks.end(); it++) { Loading services/surfaceflinger/Scheduler/VSyncDispatchTimerQueue.h +4 −0 Original line number Diff line number Diff line Loading @@ -148,6 +148,10 @@ private: std::mutex mutable mMutex; // During VSyncDispatchTimerQueue deconstruction, skip timerCallback to // avoid crash bool mRunning = true; static constexpr nsecs_t kInvalidTime = std::numeric_limits<int64_t>::max(); std::unique_ptr<TimeKeeper> const mTimeKeeper; VsyncSchedule::TrackerPtr mTracker; Loading Loading
services/surfaceflinger/Scheduler/VSyncDispatchTimerQueue.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -237,6 +237,7 @@ VSyncDispatchTimerQueue::VSyncDispatchTimerQueue(std::unique_ptr<TimeKeeper> tk, VSyncDispatchTimerQueue::~VSyncDispatchTimerQueue() { std::lock_guard lock(mMutex); mRunning = false; cancelTimer(); for (auto& [_, entry] : mCallbacks) { ALOGE("Forgot to unregister a callback on VSyncDispatch!"); Loading Loading @@ -305,6 +306,10 @@ void VSyncDispatchTimerQueue::timerCallback() { std::vector<Invocation> invocations; { std::lock_guard lock(mMutex); if (!mRunning) { ALOGD("TimerQueue is not running. Skipping callback."); return; } auto const now = mTimeKeeper->now(); mLastTimerCallback = now; for (auto it = mCallbacks.begin(); it != mCallbacks.end(); it++) { Loading
services/surfaceflinger/Scheduler/VSyncDispatchTimerQueue.h +4 −0 Original line number Diff line number Diff line Loading @@ -148,6 +148,10 @@ private: std::mutex mutable mMutex; // During VSyncDispatchTimerQueue deconstruction, skip timerCallback to // avoid crash bool mRunning = true; static constexpr nsecs_t kInvalidTime = std::numeric_limits<int64_t>::max(); std::unique_ptr<TimeKeeper> const mTimeKeeper; VsyncSchedule::TrackerPtr mTracker; Loading