Title: [211791] releases/WebKitGTK/webkit-2.14/Source/WebKit2
- Revision
- 211791
- Author
- carlo...@webkit.org
- Date
- 2017-02-07 01:33:24 -0800 (Tue, 07 Feb 2017)
Log Message
Merge r211347 - [Threaded Compositor] Crash when deleting the compositor run loop
https://bugs.webkit.org/show_bug.cgi?id=167545
Reviewed by Michael Catanzaro.
The problem is that we are releasing the WorkQueue before the update timer that keeps a reference to the run
loop, destroyed by the WorkQueue. So, invalidate the WorkQueue in the next run loop iteration to ensure it
happens after the CompositingRunLoop destructor.
* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
(WebKit::CompositingRunLoop::~CompositingRunLoop):
Modified Paths
Diff
Modified: releases/WebKitGTK/webkit-2.14/Source/WebKit2/ChangeLog (211790 => 211791)
--- releases/WebKitGTK/webkit-2.14/Source/WebKit2/ChangeLog 2017-02-07 09:33:19 UTC (rev 211790)
+++ releases/WebKitGTK/webkit-2.14/Source/WebKit2/ChangeLog 2017-02-07 09:33:24 UTC (rev 211791)
@@ -1,5 +1,19 @@
2017-01-28 Carlos Garcia Campos <cgar...@igalia.com>
+ [Threaded Compositor] Crash when deleting the compositor run loop
+ https://bugs.webkit.org/show_bug.cgi?id=167545
+
+ Reviewed by Michael Catanzaro.
+
+ The problem is that we are releasing the WorkQueue before the update timer that keeps a reference to the run
+ loop, destroyed by the WorkQueue. So, invalidate the WorkQueue in the next run loop iteration to ensure it
+ happens after the CompositingRunLoop destructor.
+
+ * Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
+ (WebKit::CompositingRunLoop::~CompositingRunLoop):
+
+2017-01-28 Carlos Garcia Campos <cgar...@igalia.com>
+
[GTK] ASSERTION FAILED: !m_layerTreeHost in DrawingAreaImpl::display()
https://bugs.webkit.org/show_bug.cgi?id=167548
Modified: releases/WebKitGTK/webkit-2.14/Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp (211790 => 211791)
--- releases/WebKitGTK/webkit-2.14/Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp 2017-02-07 09:33:19 UTC (rev 211790)
+++ releases/WebKitGTK/webkit-2.14/Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp 2017-02-07 09:33:24 UTC (rev 211791)
@@ -119,7 +119,11 @@
CompositingRunLoop::~CompositingRunLoop()
{
- WorkQueuePool::singleton().invalidate(this);
+ ASSERT(isMainThread());
+ // Make sure the WorkQueue is deleted after the CompositingRunLoop, because m_updateTimer has a reference
+ // of the WorkQueue run loop. Passing this is not a problem because the pointer will only be used as a
+ // HashMap key by WorkQueuePool.
+ RunLoop::main().dispatch([context = this] { WorkQueuePool::singleton().invalidate(context); });
}
void CompositingRunLoop::performTask(Function<void ()>&& function)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes