Title: [140445] trunk/Source/WebCore
Revision
140445
Author
ser...@webkit.org
Date
2013-01-22 11:24:58 -0800 (Tue, 22 Jan 2013)

Log Message

[Soup] Random thread crashes
https://bugs.webkit.org/show_bug.cgi?id=107439

Reviewed by Martin Robinson.

Process all pending requests in the inner GMainContext created to
perform synchronous requests before restoring the thread default. No
new tests required, already covered by network tests.

* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::WebCoreSynchronousLoader::~WebCoreSynchronousLoader):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (140444 => 140445)


--- trunk/Source/WebCore/ChangeLog	2013-01-22 19:24:50 UTC (rev 140444)
+++ trunk/Source/WebCore/ChangeLog	2013-01-22 19:24:58 UTC (rev 140445)
@@ -1,3 +1,17 @@
+2013-01-22  Sergio Villar Senin  <svil...@igalia.com>
+
+        [Soup] Random thread crashes
+        https://bugs.webkit.org/show_bug.cgi?id=107439
+
+        Reviewed by Martin Robinson.
+
+        Process all pending requests in the inner GMainContext created to
+        perform synchronous requests before restoring the thread default. No
+        new tests required, already covered by network tests.
+
+        * platform/network/soup/ResourceHandleSoup.cpp:
+        (WebCore::WebCoreSynchronousLoader::~WebCoreSynchronousLoader):
+
 2013-01-22  Christophe Dumez  <christophe.du...@intel.com>
 
         [gstreamer] GstBus signal watch should be removed on clean up

Modified: trunk/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp (140444 => 140445)


--- trunk/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp	2013-01-22 19:24:50 UTC (rev 140444)
+++ trunk/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp	2013-01-22 19:24:58 UTC (rev 140445)
@@ -117,7 +117,12 @@
     ~WebCoreSynchronousLoader()
     {
         adjustMaxConnections(-1);
-        g_main_context_pop_thread_default(g_main_context_get_thread_default());
+
+        GMainContext* context = g_main_context_get_thread_default();
+        while (g_main_context_pending(context))
+            g_main_context_iteration(context, FALSE);
+
+        g_main_context_pop_thread_default(context);
         loadingSynchronousRequest = false;
     }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to