FenceTimeline: Fix a potential race condition

FenceTimeline::updateSignalTimes checks if mQueue is empty without
grabbing the lock. This can lead a situaltion that a threads calls
pop() on an empty queue.

Test: boot
Bug: 132735340
Change-Id: I3007bfc1161797cb4d853506bb354e820bc9105d
diff --git a/libs/ui/FenceTime.cpp b/libs/ui/FenceTime.cpp
index 340231d..bdfe04b 100644
--- a/libs/ui/FenceTime.cpp
+++ b/libs/ui/FenceTime.cpp
@@ -279,8 +279,8 @@
 }
 
 void FenceTimeline::updateSignalTimes() {
+    std::lock_guard<std::mutex> lock(mMutex);
     while (!mQueue.empty()) {
-        std::lock_guard<std::mutex> lock(mMutex);
         std::shared_ptr<FenceTime> fence = mQueue.front().lock();
         if (!fence) {
             // The shared_ptr no longer exists and no one cares about the