| Index: third_party/mojo/src/mojo/edk/system/master_connection_manager.cc
|
| diff --git a/third_party/mojo/src/mojo/edk/system/master_connection_manager.cc b/third_party/mojo/src/mojo/edk/system/master_connection_manager.cc
|
| index 4d7deaef555ee888b9b3100ea8bf6aadd941aa8e..b401bcd24a338203ca6684fcd71b1d044c6105c3 100644
|
| --- a/third_party/mojo/src/mojo/edk/system/master_connection_manager.cc
|
| +++ b/third_party/mojo/src/mojo/edk/system/master_connection_manager.cc
|
| @@ -220,16 +220,13 @@ struct MasterConnectionManager::PendingConnectionInfo {
|
| // MasterConnectionManager -----------------------------------------------------
|
|
|
| MasterConnectionManager::MasterConnectionManager()
|
| - : creation_thread_task_runner_(base::MessageLoop::current()->task_runner()),
|
| - master_process_delegate_(),
|
| + : master_process_delegate_(),
|
| private_thread_("MasterConnectionManagerPrivateThread"),
|
| next_process_identifier_(kFirstSlaveProcessIdentifier) {
|
| - DCHECK(creation_thread_task_runner_);
|
| - AssertOnCreationThread(); // Just make sure this assertion works correctly.
|
| }
|
|
|
| MasterConnectionManager::~MasterConnectionManager() {
|
| - AssertOnCreationThread();
|
| + DCHECK(!delegate_thread_task_runner_);
|
| DCHECK(!master_process_delegate_);
|
| DCHECK(!private_thread_.message_loop());
|
| DCHECK(helpers_.empty());
|
| @@ -237,19 +234,23 @@ MasterConnectionManager::~MasterConnectionManager() {
|
| }
|
|
|
| void MasterConnectionManager::Init(
|
| + scoped_refptr<base::TaskRunner> delegate_thread_task_runner,
|
| embedder::MasterProcessDelegate* master_process_delegate) {
|
| - AssertOnCreationThread();
|
| + DCHECK(delegate_thread_task_runner);
|
| DCHECK(master_process_delegate);
|
| + DCHECK(!delegate_thread_task_runner_);
|
| DCHECK(!master_process_delegate_);
|
| DCHECK(!private_thread_.message_loop());
|
|
|
| + delegate_thread_task_runner_ = delegate_thread_task_runner;
|
| + AssertOnDelegateThread();
|
| master_process_delegate_ = master_process_delegate;
|
| CHECK(private_thread_.StartWithOptions(
|
| base::Thread::Options(base::MessageLoop::TYPE_IO, 0)));
|
| }
|
|
|
| void MasterConnectionManager::Shutdown() {
|
| - AssertOnCreationThread();
|
| + AssertOnDelegateThread();
|
| DCHECK(master_process_delegate_);
|
| DCHECK(private_thread_.message_loop());
|
|
|
| @@ -261,6 +262,7 @@ void MasterConnectionManager::Shutdown() {
|
| DCHECK(helpers_.empty());
|
| DCHECK(pending_connections_.empty());
|
| master_process_delegate_ = nullptr;
|
| + delegate_thread_task_runner_ = nullptr;
|
| }
|
|
|
| void MasterConnectionManager::AddSlave(
|
| @@ -547,16 +549,16 @@ void MasterConnectionManager::CallOnSlaveDisconnect(
|
| scoped_ptr<embedder::SlaveInfo> slave_info) {
|
| AssertOnPrivateThread();
|
| DCHECK(master_process_delegate_);
|
| - creation_thread_task_runner_->PostTask(
|
| + delegate_thread_task_runner_->PostTask(
|
| FROM_HERE, base::Bind(&embedder::MasterProcessDelegate::OnSlaveDisconnect,
|
| base::Unretained(master_process_delegate_),
|
| base::Passed(&slave_info)));
|
| }
|
|
|
| -void MasterConnectionManager::AssertOnCreationThread() const {
|
| +void MasterConnectionManager::AssertOnDelegateThread() const {
|
| DCHECK(base::MessageLoop::current());
|
| DCHECK_EQ(base::MessageLoop::current()->task_runner(),
|
| - creation_thread_task_runner_);
|
| + delegate_thread_task_runner_);
|
| }
|
|
|
| void MasterConnectionManager::AssertNotOnPrivateThread() const {
|
|
|