diff options
author | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-10 23:04:55 +0000 |
---|---|---|
committer | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-10 23:04:55 +0000 |
commit | 361e25c6d29fdae737b5ddf846606093b5502187 (patch) | |
tree | 3114ddee1266088582391d5be9d0ab7aecbd5b8d /chrome/common/process_watcher_posix.cc | |
parent | c6b652b9298b037d8a18dd241061122200019dba (diff) | |
download | chromium_src-361e25c6d29fdae737b5ddf846606093b5502187.zip chromium_src-361e25c6d29fdae737b5ddf846606093b5502187.tar.gz chromium_src-361e25c6d29fdae737b5ddf846606093b5502187.tar.bz2 |
Linux: refactor zygote support
http://code.google.com/p/chromium/wiki/LinuxZygote
* Move Chrome specific bits out of base
* Move away from the idea of reserved file descriptors (which don't
really work with zygotes)
* Load resources before forking renderers (means that we don't need
communication between the zygote process and the renderers)
* Make sure that gdb works against the browser again
* Make sure that we have different ASLR between the renderers and the
browser.
http://codereview.chromium.org/119335
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18109 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/process_watcher_posix.cc')
-rw-r--r-- | chrome/common/process_watcher_posix.cc | 15 |
1 files changed, 1 insertions, 14 deletions
diff --git a/chrome/common/process_watcher_posix.cc b/chrome/common/process_watcher_posix.cc index 497b80b..f1ae4f4 100644 --- a/chrome/common/process_watcher_posix.cc +++ b/chrome/common/process_watcher_posix.cc @@ -11,7 +11,6 @@ #include "base/eintr_wrapper.h" #include "base/platform_thread.h" -#include "base/zygote_manager.h" // Return true if the given child is dead. This will also reap the process. // Doesn't block. @@ -70,20 +69,8 @@ class BackgroundReaper : public PlatformThread::Delegate { // static void ProcessWatcher::EnsureProcessTerminated(base::ProcessHandle process) { // If the child is already dead, then there's nothing to do - const int result = HANDLE_EINTR(waitpid(process, NULL, WNOHANG)); - if (result > 0) + if (IsChildDead(process)) return; - if (result == -1) { -#if defined(OS_LINUX) - // If it wasn't our child, maybe it was the zygote manager's child - base::ZygoteManager* zm = base::ZygoteManager::Get(); - if (zm) { - zm->EnsureProcessTerminated(process); - return; - } -#endif // defined(OS_LINUX) - NOTREACHED(); - } BackgroundReaper* reaper = new BackgroundReaper(process); PlatformThread::CreateNonJoinable(0, reaper); |