Index: chrome/common/child_process.cc |
=================================================================== |
--- chrome/common/child_process.cc (revision 21215) |
+++ chrome/common/child_process.cc (working copy) |
@@ -9,14 +9,14 @@ |
ChildProcess* ChildProcess::child_process_; |
-ChildProcess::ChildProcess() |
- : ref_count_(0), |
- shutdown_event_(true, false), |
- io_thread_("Chrome_ChildIOThread") { |
+ChildProcess::ChildProcess(ChildThread* child_thread) |
+ : child_thread_(child_thread), |
+ ref_count_(0), |
+ shutdown_event_(true, false) { |
DCHECK(!child_process_); |
child_process_ = this; |
- |
- io_thread_.StartWithOptions(base::Thread::Options(MessageLoop::TYPE_IO, 0)); |
+ if (child_thread_.get()) // null in unittests. |
+ child_thread_->Run(); |
} |
ChildProcess::~ChildProcess() { |
@@ -28,25 +28,28 @@ |
// notice shutdown before the render process begins waiting for them to exit. |
shutdown_event_.Signal(); |
+ if (child_thread_.get()) |
+ child_thread_->Stop(); |
+ |
child_process_ = NULL; |
} |
void ChildProcess::AddRefProcess() { |
- DCHECK(!main_thread_.get() || // null in unittests. |
- MessageLoop::current() == main_thread_->message_loop()); |
+ DCHECK(!child_thread_.get() || // null in unittests. |
+ MessageLoop::current() == child_thread_->message_loop()); |
ref_count_++; |
} |
void ChildProcess::ReleaseProcess() { |
- DCHECK(!main_thread_.get() || // null in unittests. |
- MessageLoop::current() == main_thread_->message_loop()); |
+ DCHECK(!child_thread_.get() || // null in unittests. |
+ MessageLoop::current() == child_thread_->message_loop()); |
DCHECK(ref_count_); |
DCHECK(child_process_); |
if (--ref_count_) |
return; |
- if (main_thread_.get()) // null in unittests. |
- main_thread_->OnProcessFinalRelease(); |
+ if (child_thread_.get()) // null in unittests. |
+ child_thread_->OnProcessFinalRelease(); |
} |
base::WaitableEvent* ChildProcess::GetShutDownEvent() { |