Chromium Code Reviews| Index: content/browser/zygote_host/zygote_host_impl_linux.cc |
| diff --git a/content/browser/zygote_host/zygote_host_impl_linux.cc b/content/browser/zygote_host/zygote_host_impl_linux.cc |
| index f7774e550a9a464710ea58060c15ea1fa680a9ea..2a2339bf03bd314b7bd50562d60629c17230a201 100644 |
| --- a/content/browser/zygote_host/zygote_host_impl_linux.cc |
| +++ b/content/browser/zygote_host/zygote_host_impl_linux.cc |
| @@ -158,10 +158,9 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) { |
| sandbox_client->SetupLaunchEnvironment(); |
| } |
| - base::ProcessHandle process = -1; |
| options.fds_to_remap = &fds_to_map; |
| - base::LaunchProcess(cmd_line.argv(), options, &process); |
| - CHECK(process != -1) << "Failed to launch zygote process"; |
| + base::Process process = base::LaunchProcess(cmd_line.argv(), options); |
| + CHECK(process.IsValid()) << "Failed to launch zygote process"; |
| dummy_fd.reset(); |
| if (using_suid_sandbox_) { |
| @@ -188,13 +187,15 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) { |
| fds[0], kZygoteHelloMessage, sizeof(kZygoteHelloMessage), &pid_)); |
| CHECK_GT(pid_, 1); |
| - if (process != pid_) { |
| + if (process.pid() != pid_) { |
| // Reap the sandbox. |
| - base::EnsureProcessGetsReaped(process); |
| + base::EnsureProcessGetsReaped(process.pid()); |
| } |
| } else { |
| // Not using the SUID sandbox. |
| - pid_ = process; |
| + // Note that ~base::Process() will reset the internal value, but there's no |
|
jln (very slow on Chromium)
2015/01/13 19:19:23
Feel free to keep, but this confused me a little.
rvargas (doing something else)
2015/01/13 19:37:04
The pattern
{
ScopedFoo foo = Bar();
foo_ =
|
| + // real "handle" on POSIX so that is safe. |
| + pid_ = process.pid(); |
| } |
| close(fds[1]); |
| @@ -471,16 +472,16 @@ void ZygoteHostImpl::AdjustRendererOOMScore(base::ProcessHandle pid, |
| adj_oom_score_cmdline.push_back(base::Int64ToString(pid)); |
| adj_oom_score_cmdline.push_back(base::IntToString(score)); |
| - base::ProcessHandle sandbox_helper_process; |
| + base::Process sandbox_helper_process; |
| base::LaunchOptions options; |
| // sandbox_helper_process is a setuid binary. |
| options.allow_new_privs = true; |
| - if (base::LaunchProcess(adj_oom_score_cmdline, options, |
| - &sandbox_helper_process)) { |
| - base::EnsureProcessGetsReaped(sandbox_helper_process); |
| - } |
| + sandbox_helper_process = |
| + base::LaunchProcess(adj_oom_score_cmdline, options); |
| + if (sandbox_helper_process.IsValid()) |
| + base::EnsureProcessGetsReaped(sandbox_helper_process.pid()); |
| } else if (!using_suid_sandbox_) { |
| if (!base::AdjustOOMScore(pid, score)) |
| PLOG(ERROR) << "Failed to adjust OOM score of renderer with pid " << pid; |