Title: [273230] trunk/Source/WTF
Revision
273230
Author
hironori.fu...@sony.com
Date
2021-02-22 00:27:26 -0800 (Mon, 22 Feb 2021)

Log Message

RunLoop::threadWillExit is doing m_nextIteration.clear() without locking m_nextIterationLock
https://bugs.webkit.org/show_bug.cgi?id=221115

Reviewed by Yusuke Suzuki.

GKT and WPE ports were observing a random assertion failure in
Deque::append in RunLoop::dispatch.

* wtf/RunLoop.cpp:
(WTF::RunLoop::threadWillExit): Lock m_nextIterationLock before doing m_nextIteration.clear().

Modified Paths

Diff

Modified: trunk/Source/WTF/ChangeLog (273229 => 273230)


--- trunk/Source/WTF/ChangeLog	2021-02-22 05:20:42 UTC (rev 273229)
+++ trunk/Source/WTF/ChangeLog	2021-02-22 08:27:26 UTC (rev 273230)
@@ -1,3 +1,16 @@
+2021-02-22  Fujii Hironori  <hironori.fu...@sony.com>
+
+        RunLoop::threadWillExit is doing m_nextIteration.clear() without locking m_nextIterationLock
+        https://bugs.webkit.org/show_bug.cgi?id=221115
+
+        Reviewed by Yusuke Suzuki.
+
+        GKT and WPE ports were observing a random assertion failure in
+        Deque::append in RunLoop::dispatch.
+
+        * wtf/RunLoop.cpp:
+        (WTF::RunLoop::threadWillExit): Lock m_nextIterationLock before doing m_nextIteration.clear().
+
 2021-02-21  Simon Fraser  <simon.fra...@apple.com>
 
         Re-enable Paint Timing

Modified: trunk/Source/WTF/wtf/RunLoop.cpp (273229 => 273230)


--- trunk/Source/WTF/wtf/RunLoop.cpp	2021-02-22 05:20:42 UTC (rev 273229)
+++ trunk/Source/WTF/wtf/RunLoop.cpp	2021-02-22 08:27:26 UTC (rev 273230)
@@ -174,7 +174,10 @@
 void RunLoop::threadWillExit()
 {
     m_currentIteration.clear();
-    m_nextIteration.clear();
+    {
+        auto locker = holdLock(m_nextIterationLock);
+        m_nextIteration.clear();
+    }
 }
 
 } // namespace WTF
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to