[webkit-changes] [WebKit/WebKit] 50f865: RemoteGraphicsContextGLProxy::initializeIPC makes ...
mattwoodrow
noreply at github.com
Wed May 31 16:44:21 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 50f865ffbe32f1fc8a092583f719630b62ae7604
https://github.com/WebKit/WebKit/commit/50f865ffbe32f1fc8a092583f719630b62ae7604
Author: Matt Woodrow <mattwoodrow at apple.com>
Date: 2023-05-31 (Wed, 31 May 2023)
Changed paths:
M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp
Log Message:
-----------
RemoteGraphicsContextGLProxy::initializeIPC makes a copy of the StreamServerConnection::Handle
https://bugs.webkit.org/show_bug.cgi?id=257519
<rdar://109720377>
Reviewed by Kimmo Kinnunen.
The GPUConnectionToWebProcess::CreateGraphicsContextGL object's constructor doesn't actually move, so we end up making a copy for the IPC message.
The 'serverConnectionHandle' instance is then still alive, and holding on to a MachSendRight.
waitUntilInitialized can then block (for the 30 second timeout) if the GPUP crashes, since notification of the crash doesn't happen until all send rights are destroyed (including the one on the stack).
This change ensures that our copy of the handle is cleared, before trying to wait on the connection.
* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
(WebKit::RemoteGraphicsContextGLProxy::initializeIPC):
Canonical link: https://commits.webkit.org/264766@main
More information about the webkit-changes
mailing list