| Index: third_party/mojo/src/mojo/edk/system/slave_connection_manager.cc
|
| diff --git a/third_party/mojo/src/mojo/edk/system/slave_connection_manager.cc b/third_party/mojo/src/mojo/edk/system/slave_connection_manager.cc
|
| index de8d17fddb236e00418464f985d020189dd68a0d..24278236af9f55ea39c6b0c63e4cc14a464f90bf 100644
|
| --- a/third_party/mojo/src/mojo/edk/system/slave_connection_manager.cc
|
| +++ b/third_party/mojo/src/mojo/edk/system/slave_connection_manager.cc
|
| @@ -17,17 +17,20 @@
|
| // SlaveConnectionManager ------------------------------------------------------
|
|
|
| SlaveConnectionManager::SlaveConnectionManager()
|
| - : slave_process_delegate_(),
|
| + : creation_thread_task_runner_(base::MessageLoop::current()->task_runner()),
|
| + slave_process_delegate_(),
|
| private_thread_("SlaveConnectionManagerPrivateThread"),
|
| awaiting_ack_type_(NOT_AWAITING_ACK),
|
| ack_result_(),
|
| ack_peer_process_identifier_(),
|
| ack_platform_handle_(),
|
| event_(false, false) { // Auto-reset, not initially signalled.
|
| + DCHECK(creation_thread_task_runner_);
|
| + AssertOnCreationThread(); // Just make sure this assertion works correctly.
|
| }
|
|
|
| SlaveConnectionManager::~SlaveConnectionManager() {
|
| - DCHECK(!delegate_thread_task_runner_);
|
| + AssertOnCreationThread();
|
| DCHECK(!slave_process_delegate_);
|
| DCHECK(!private_thread_.message_loop());
|
| DCHECK_EQ(awaiting_ack_type_, NOT_AWAITING_ACK);
|
| @@ -37,18 +40,14 @@
|
| }
|
|
|
| void SlaveConnectionManager::Init(
|
| - scoped_refptr<base::TaskRunner> delegate_thread_task_runner,
|
| embedder::SlaveProcessDelegate* slave_process_delegate,
|
| embedder::ScopedPlatformHandle platform_handle) {
|
| - DCHECK(delegate_thread_task_runner);
|
| + AssertOnCreationThread();
|
| DCHECK(slave_process_delegate);
|
| DCHECK(platform_handle.is_valid());
|
| - DCHECK(!delegate_thread_task_runner_);
|
| DCHECK(!slave_process_delegate_);
|
| DCHECK(!private_thread_.message_loop());
|
|
|
| - delegate_thread_task_runner_ = delegate_thread_task_runner;
|
| - AssertOnDelegateThread();
|
| slave_process_delegate_ = slave_process_delegate;
|
| CHECK(private_thread_.StartWithOptions(
|
| base::Thread::Options(base::MessageLoop::TYPE_IO, 0)));
|
| @@ -60,7 +59,7 @@
|
| }
|
|
|
| void SlaveConnectionManager::Shutdown() {
|
| - AssertOnDelegateThread();
|
| + AssertOnCreationThread();
|
| DCHECK(slave_process_delegate_);
|
| DCHECK(private_thread_.message_loop());
|
|
|
| @@ -70,7 +69,6 @@
|
| base::Unretained(this)));
|
| private_thread_.Stop();
|
| slave_process_delegate_ = nullptr;
|
| - delegate_thread_task_runner_ = nullptr;
|
| }
|
|
|
| bool SlaveConnectionManager::AllowConnect(
|
| @@ -289,15 +287,15 @@
|
| raw_channel_.reset();
|
|
|
| DCHECK(slave_process_delegate_);
|
| - delegate_thread_task_runner_->PostTask(
|
| + creation_thread_task_runner_->PostTask(
|
| FROM_HERE, base::Bind(&embedder::SlaveProcessDelegate::OnMasterDisconnect,
|
| base::Unretained(slave_process_delegate_)));
|
| }
|
|
|
| -void SlaveConnectionManager::AssertOnDelegateThread() const {
|
| +void SlaveConnectionManager::AssertOnCreationThread() const {
|
| DCHECK(base::MessageLoop::current());
|
| DCHECK_EQ(base::MessageLoop::current()->task_runner(),
|
| - delegate_thread_task_runner_);
|
| + creation_thread_task_runner_);
|
| }
|
|
|
| void SlaveConnectionManager::AssertNotOnPrivateThread() const {
|
|
|