diff options
author | jln@chromium.org <jln@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-06 08:31:51 +0000 |
---|---|---|
committer | jln@chromium.org <jln@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-06 08:31:51 +0000 |
commit | c7691de3400bc8d62d85c96d41323eee85b85d22 (patch) | |
tree | d7cf9983cb979c0d8638c0a03f7f79f06ef256f3 /content/browser/browser_child_process_host_impl.cc | |
parent | 6296948cd669293abfe7b516fd22b08041f8f4f5 (diff) | |
download | chromium_src-c7691de3400bc8d62d85c96d41323eee85b85d22.zip chromium_src-c7691de3400bc8d62d85c96d41323eee85b85d22.tar.gz chromium_src-c7691de3400bc8d62d85c96d41323eee85b85d22.tar.bz2 |
Linux: inform the Zygote when it's waiting on a dead process
If the browser calls ProcessDied() and asks the Zygote to wait (without blocking)
on a dead process, the kernel might not be done destroying it and the Zygote may
mistakenly claim that the process is alive.
We now inform the Zygote over the IPC that the process is already dead so
that it can wait synchroneously.
BUG=157458
NOTRY=true
Review URL: https://chromiumcodereview.appspot.com/11316261
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171450 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/browser_child_process_host_impl.cc')
-rw-r--r-- | content/browser/browser_child_process_host_impl.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/content/browser/browser_child_process_host_impl.cc b/content/browser/browser_child_process_host_impl.cc index f095e98..ffb51c0 100644 --- a/content/browser/browser_child_process_host_impl.cc +++ b/content/browser/browser_child_process_host_impl.cc @@ -194,7 +194,8 @@ base::TerminationStatus BrowserChildProcessHostImpl::GetTerminationStatus( DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); if (!child_process_.get()) // If the delegate doesn't use Launch() helper. return base::GetTerminationStatus(data_.handle, exit_code); - return child_process_->GetChildTerminationStatus(exit_code); + return child_process_->GetChildTerminationStatus(false /* known_dead */, + exit_code); } bool BrowserChildProcessHostImpl::OnMessageReceived( |