Index: chrome/common/child_process.cc |
=================================================================== |
--- chrome/common/child_process.cc (revision 44239) |
+++ chrome/common/child_process.cc (working copy) |
@@ -8,66 +8,16 @@ |
#include "base/message_loop.h" |
#include "base/process_util.h" |
#include "base/string_util.h" |
-#include "chrome/common/child_thread.h" |
#include "grit/chromium_strings.h" |
-#if defined(OS_POSIX) |
-#include <signal.h> |
- |
-static void SigUSR1Handler(int signal) { } |
-#endif |
- |
-ChildProcess* ChildProcess::child_process_; |
- |
ChildProcess::ChildProcess() |
- : ref_count_(0), |
- shutdown_event_(true, false), |
- io_thread_("Chrome_ChildIOThread") { |
- DCHECK(!child_process_); |
- child_process_ = this; |
- |
+ : io_thread_("Chrome_ChildIOThread") { |
io_thread_.StartWithOptions(base::Thread::Options(MessageLoop::TYPE_IO, 0)); |
} |
ChildProcess::~ChildProcess() { |
- DCHECK(child_process_ == this); |
- |
- // Signal this event before destroying the child process. That way all |
- // background threads can cleanup. |
- // For example, in the renderer the RenderThread instances will be able to |
- // 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. |
- main_thread_.reset(); |
- |
- child_process_ = NULL; |
} |
-void ChildProcess::AddRefProcess() { |
- DCHECK(!main_thread_.get() || // null in unittests. |
- MessageLoop::current() == main_thread_->message_loop()); |
- ref_count_++; |
-} |
- |
-void ChildProcess::ReleaseProcess() { |
- DCHECK(!main_thread_.get() || // null in unittests. |
- MessageLoop::current() == main_thread_->message_loop()); |
- DCHECK(ref_count_); |
- DCHECK(child_process_); |
- if (--ref_count_) |
- return; |
- |
- if (main_thread_.get()) // null in unittests. |
- main_thread_->OnProcessFinalRelease(); |
-} |
- |
-base::WaitableEvent* ChildProcess::GetShutDownEvent() { |
- DCHECK(child_process_); |
- return &child_process_->shutdown_event_; |
-} |
- |
void ChildProcess::WaitForDebugger(const std::wstring& label) { |
#if defined(OS_WIN) |
std::wstring title = l10n_util::GetString(IDS_PRODUCT_NAME); |