Title: [112340] trunk/Source/WebCore
Revision
112340
Author
[email protected]
Date
2012-03-27 17:21:13 -0700 (Tue, 27 Mar 2012)

Log Message

Fix race condition when initializing the scrolling thread
https://bugs.webkit.org/show_bug.cgi?id=82398
<rdar://problem/11002166>

Reviewed by Sam Weinig.

Lock m_initializeRunLoopConditionMutex when assigning m_threadIdentifier since we're
asserting that it's not null in the scrolling thread.

* page/scrolling/ScrollingThread.cpp:
(WebCore::ScrollingThread::createThreadIfNeeded):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (112339 => 112340)


--- trunk/Source/WebCore/ChangeLog	2012-03-28 00:19:47 UTC (rev 112339)
+++ trunk/Source/WebCore/ChangeLog	2012-03-28 00:21:13 UTC (rev 112340)
@@ -1,3 +1,17 @@
+2012-03-27  Anders Carlsson  <[email protected]>
+
+        Fix race condition when initializing the scrolling thread
+        https://bugs.webkit.org/show_bug.cgi?id=82398
+        <rdar://problem/11002166>
+
+        Reviewed by Sam Weinig.
+
+        Lock m_initializeRunLoopConditionMutex when assigning m_threadIdentifier since we're
+        asserting that it's not null in the scrolling thread.
+
+        * page/scrolling/ScrollingThread.cpp:
+        (WebCore::ScrollingThread::createThreadIfNeeded):
+
 2012-03-27  Luke Macpherson  <[email protected]>
 
         Add assertions to valueForLength() and RenderBox::computeLogicalWidthInRegionUsing() to help with debugging.

Modified: trunk/Source/WebCore/page/scrolling/ScrollingThread.cpp (112339 => 112340)


--- trunk/Source/WebCore/page/scrolling/ScrollingThread.cpp	2012-03-28 00:19:47 UTC (rev 112339)
+++ trunk/Source/WebCore/page/scrolling/ScrollingThread.cpp	2012-03-28 00:21:13 UTC (rev 112340)
@@ -66,11 +66,12 @@
     if (m_threadIdentifier)
         return;
 
-    m_threadIdentifier = createThread(threadCallback, this, "WebCore: Scrolling");
-
     // Wait for the thread to initialize the run loop.
     {
         MutexLocker locker(m_initializeRunLoopConditionMutex);
+
+        m_threadIdentifier = createThread(threadCallback, this, "WebCore: Scrolling");
+        
 #if PLATFORM(MAC)
         while (!m_threadRunLoop)
             m_initializeRunLoopCondition.wait(m_initializeRunLoopConditionMutex);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to