| Index: content/child/child_process.cc
|
| diff --git a/content/child/child_process.cc b/content/child/child_process.cc
|
| index 2763ee03cffdb0b12d5934091b9c31f7bad6ff39..7c5b408e842e328c5f0b8c2edc1abe0beb91a41b 100644
|
| --- a/content/child/child_process.cc
|
| +++ b/content/child/child_process.cc
|
| @@ -67,11 +67,15 @@ ChildProcess::~ChildProcess() {
|
| // notice shutdown before the render process begins waiting for them to exit.
|
| shutdown_event_.Signal();
|
|
|
| - // Kill the main thread object before nulling child_process, since
|
| - // destruction code might depend on it.
|
| if (main_thread_) { // null in unittests.
|
| main_thread_->Shutdown();
|
| - main_thread_.reset();
|
| + if (main_thread_->ShouldBeDestroyed()) {
|
| + main_thread_.reset();
|
| + } else {
|
| + // Leak the main_thread_. See a comment in
|
| + // RenderThreadImpl::ShouldBeDestroyed.
|
| + main_thread_.release();
|
| + }
|
| }
|
|
|
| g_lazy_tls.Pointer()->Set(NULL);
|
|
|