Index: services/service_manager/standalone/context.cc |
diff --git a/services/service_manager/standalone/context.cc b/services/service_manager/standalone/context.cc |
index 4ab116c0881b35a67bee39e54e597ae8cd56a7a6..469af658b727ddc0e593684b2fc23e3fafca9823 100644 |
--- a/services/service_manager/standalone/context.cc |
+++ b/services/service_manager/standalone/context.cc |
@@ -149,7 +149,7 @@ void Context::Init(std::unique_ptr<InitParams> init_params) { |
init_edk_ = !init_params || init_params->init_edk; |
if (init_edk_) { |
- mojo::edk::InitIPCSupport(this, io_thread_->task_runner().get()); |
+ mojo::edk::InitIPCSupport(io_thread_->task_runner().get()); |
#if defined(OS_MACOSX) |
mojo::edk::SetMachPortProvider(MachBroker::GetInstance()->port_provider()); |
#endif |
@@ -243,9 +243,11 @@ void Context::Shutdown() { |
return; |
TRACE_EVENT0("service_manager", "Context::Shutdown"); |
- // Post a task in case OnShutdownComplete is called synchronously. |
- base::ThreadTaskRunnerHandle::Get()->PostTask( |
- FROM_HERE, base::Bind(mojo::edk::ShutdownIPCSupport)); |
+ mojo::edk::ShutdownIPCSupport( |
+ base::Bind(IgnoreResult(&base::TaskRunner::PostTask), |
+ base::ThreadTaskRunnerHandle::Get(), FROM_HERE, |
+ base::Bind(&Context::OnShutdownComplete, |
+ base::Unretained(this)))); |
// We'll quit when we get OnShutdownComplete(). |
base::RunLoop().Run(); |
} |