Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[WPE][GTK] Avoid another child setup function in process launcher code
https://bugs.webkit.org/show_bug.cgi?id=222049 Patch by Michael Catanzaro <mcatanzaro@gnome.org> on 2021-02-18 Reviewed by Carlos Garcia Campos. Avoiding child setup functions is desirable because it could allow GSubprocess to use posix_spawn() instead of fork() in the future. That's not possible to do if we have code that needs to run between fork() and exec(). In this case, the child setup is used only to unset CLOEXEC. We could simply not set it in the first place. This only fails if a secondary thread decides to launch a subprocess before XDGDBusProxyLauncher::launch returns. That window already exists in many other places (e.g. anywhere else setCloseOnExec is called, such as for IPC::Connection objects). Threads should not do that. This also fixes a bug where unsetting CLOEXEC would fail if we get unlucky and receive EINTR. A loop is required here. WTF::setCloseOnExec handles that for us. * UIProcess/Launcher/glib/BubblewrapLauncher.cpp: (WebKit::XDGDBusProxyLauncher::launch): (WebKit::XDGDBusProxyLauncher::childSetupFunc): Deleted. Canonical link: https://commits.webkit.org/234285@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273087 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- Loading branch information