Title: [141796] trunk/Source/WebKit2
Revision
141796
Author
[email protected]
Date
2013-02-04 13:11:27 -0800 (Mon, 04 Feb 2013)

Log Message

Use a separate queue for the connection watchdog callback in the web process
https://bugs.webkit.org/show_bug.cgi?id=108844

Reviewed by Andreas Kling.

Don't pass the connection work queue to the didCloseOnConnectionWorkQueue callback.
Instead, create a new, temporary work queue where the exit call will be dispatched to.

* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::connectionDidClose):
* Platform/CoreIPC/Connection.h:
(Connection):
* Shared/ChildProcess.cpp:
(WebKit::didCloseOnConnectionWorkQueue):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (141795 => 141796)


--- trunk/Source/WebKit2/ChangeLog	2013-02-04 21:00:26 UTC (rev 141795)
+++ trunk/Source/WebKit2/ChangeLog	2013-02-04 21:11:27 UTC (rev 141796)
@@ -1,3 +1,20 @@
+2013-02-04  Anders Carlsson  <[email protected]>
+
+        Use a separate queue for the connection watchdog callback in the web process
+        https://bugs.webkit.org/show_bug.cgi?id=108844
+
+        Reviewed by Andreas Kling.
+
+        Don't pass the connection work queue to the didCloseOnConnectionWorkQueue callback.
+        Instead, create a new, temporary work queue where the exit call will be dispatched to.
+
+        * Platform/CoreIPC/Connection.cpp:
+        (CoreIPC::Connection::connectionDidClose):
+        * Platform/CoreIPC/Connection.h:
+        (Connection):
+        * Shared/ChildProcess.cpp:
+        (WebKit::didCloseOnConnectionWorkQueue):
+
 2013-02-04  Tim Horton  <[email protected]>
 
         Allow TiledCoreAnimationDrawingArea overlay layers to become tiled

Modified: trunk/Source/WebKit2/Platform/CoreIPC/Connection.cpp (141795 => 141796)


--- trunk/Source/WebKit2/Platform/CoreIPC/Connection.cpp	2013-02-04 21:00:26 UTC (rev 141795)
+++ trunk/Source/WebKit2/Platform/CoreIPC/Connection.cpp	2013-02-04 21:11:27 UTC (rev 141796)
@@ -637,7 +637,7 @@
     }
 
     if (m_didCloseOnConnectionWorkQueueCallback)
-        m_didCloseOnConnectionWorkQueueCallback(m_connectionQueue.get(), this);
+        m_didCloseOnConnectionWorkQueueCallback(this);
 
     m_clientRunLoop->dispatch(WTF::bind(&Connection::dispatchConnectionDidClose, this));
 }

Modified: trunk/Source/WebKit2/Platform/CoreIPC/Connection.h (141795 => 141796)


--- trunk/Source/WebKit2/Platform/CoreIPC/Connection.h	2013-02-04 21:00:26 UTC (rev 141795)
+++ trunk/Source/WebKit2/Platform/CoreIPC/Connection.h	2013-02-04 21:11:27 UTC (rev 141796)
@@ -161,7 +161,7 @@
     // In the future we might want a more generic way to handle sync or async messages directly
     // on the work queue, for example if we want to handle them on some other thread we could avoid
     // handling the message on the client thread first.
-    typedef void (*DidCloseOnConnectionWorkQueueCallback)(WorkQueue*, Connection*);
+    typedef void (*DidCloseOnConnectionWorkQueueCallback)(Connection*);
     void setDidCloseOnConnectionWorkQueueCallback(DidCloseOnConnectionWorkQueueCallback callback);
 
     void addQueueClient(QueueClient*);

Modified: trunk/Source/WebKit2/Shared/ChildProcess.cpp (141795 => 141796)


--- trunk/Source/WebKit2/Shared/ChildProcess.cpp	2013-02-04 21:00:26 UTC (rev 141795)
+++ trunk/Source/WebKit2/Shared/ChildProcess.cpp	2013-02-04 21:11:27 UTC (rev 141796)
@@ -55,13 +55,13 @@
     _exit(EXIT_FAILURE);
 }
 
-static void didCloseOnConnectionWorkQueue(WorkQueue* workQueue, CoreIPC::Connection*)
+static void didCloseOnConnectionWorkQueue(CoreIPC::Connection*)
 {
     // If the connection has been closed and we haven't responded in the main thread for 10 seconds
     // the process will exit forcibly.
     const double watchdogDelay = 10;
 
-    workQueue->dispatchAfterDelay(bind(static_cast<void(*)()>(watchdogCallback)), watchdogDelay);
+    WorkQueue::create("com.apple.WebKit.ChildProcess.WatchDogQueue")->dispatchAfterDelay(bind(static_cast<void(*)()>(watchdogCallback)), watchdogDelay);
 }
 
 void ChildProcess::initialize(const ChildProcessInitializationParameters& parameters)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to