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