Chromium Code Reviews| Index: content/common/gpu/client/gpu_channel_host.cc |
| diff --git a/content/common/gpu/client/gpu_channel_host.cc b/content/common/gpu/client/gpu_channel_host.cc |
| index 475eeb1541f6a4a4cb402ff7034055f17549f5ff..45efeec9d4b681d87bebb76839e5da2fe8e51790 100644 |
| --- a/content/common/gpu/client/gpu_channel_host.cc |
| +++ b/content/common/gpu/client/gpu_channel_host.cc |
| @@ -7,9 +7,10 @@ |
| #include <algorithm> |
| #include "base/bind.h" |
| -#include "base/message_loop/message_loop.h" |
| -#include "base/message_loop/message_loop_proxy.h" |
| +#include "base/location.h" |
| #include "base/posix/eintr_wrapper.h" |
| +#include "base/single_thread_task_runner.h" |
| +#include "base/thread_task_runner_handle.h" |
| #include "base/threading/thread_restrictions.h" |
| #include "base/trace_event/trace_event.h" |
| #include "content/common/gpu/client/command_buffer_proxy_impl.h" |
| @@ -22,7 +23,6 @@ |
| #endif |
| using base::AutoLock; |
| -using base::MessageLoopProxy; |
| namespace content { |
| @@ -71,13 +71,11 @@ void GpuChannelHost::Connect(const IPC::ChannelHandle& channel_handle, |
| DCHECK(factory_->IsMainThread()); |
| // Open a channel to the GPU process. We pass NULL as the main listener here |
| // since we need to filter everything to route it to the right thread. |
| - scoped_refptr<base::MessageLoopProxy> io_loop = factory_->GetIOLoopProxy(); |
| - channel_ = IPC::SyncChannel::Create(channel_handle, |
| - IPC::Channel::MODE_CLIENT, |
| - NULL, |
| - io_loop.get(), |
| - true, |
| - shutdown_event); |
| + scoped_refptr<base::SingleThreadTaskRunner> io_task_runner = |
| + factory_->GetIOThreadTaskRunner(); |
| + channel_ = |
| + IPC::SyncChannel::Create(channel_handle, IPC::Channel::MODE_CLIENT, NULL, |
| + io_task_runner.get(), true, shutdown_event); |
| sync_filter_ = new IPC::SyncMessageFilter(shutdown_event); |
| @@ -186,14 +184,11 @@ CommandBufferProxyImpl* GpuChannelHost::CreateViewCommandBuffer( |
| // then set up a new connection, and the GPU channel and any |
| // view command buffers will all be associated with the same GPU |
| // process. |
| - DCHECK(MessageLoopProxy::current().get()); |
| - |
| - scoped_refptr<base::MessageLoopProxy> io_loop = |
| - factory_->GetIOLoopProxy(); |
| - io_loop->PostTask( |
| - FROM_HERE, |
| - base::Bind(&GpuChannelHost::MessageFilter::OnChannelError, |
| - channel_filter_.get())); |
| + scoped_refptr<base::SingleThreadTaskRunner> io_task_runner = |
| + factory_->GetIOThreadTaskRunner(); |
| + io_task_runner->PostTask( |
| + FROM_HERE, base::Bind(&GpuChannelHost::MessageFilter::OnChannelError, |
| + channel_filter_.get())); |
| } |
| return NULL; |
| @@ -287,20 +282,20 @@ void GpuChannelHost::DestroyChannel() { |
| void GpuChannelHost::AddRoute( |
| int route_id, base::WeakPtr<IPC::Listener> listener) { |
| - DCHECK(MessageLoopProxy::current().get()); |
| - |
| - scoped_refptr<base::MessageLoopProxy> io_loop = factory_->GetIOLoopProxy(); |
| - io_loop->PostTask(FROM_HERE, |
| - base::Bind(&GpuChannelHost::MessageFilter::AddRoute, |
| - channel_filter_.get(), route_id, listener, |
| - MessageLoopProxy::current())); |
| + scoped_refptr<base::SingleThreadTaskRunner> io_task_runner = |
| + factory_->GetIOThreadTaskRunner(); |
| + io_task_runner->PostTask(FROM_HERE, |
| + base::Bind(&GpuChannelHost::MessageFilter::AddRoute, |
| + channel_filter_.get(), route_id, listener, |
| + base::ThreadTaskRunnerHandle::Get())); |
| } |
| void GpuChannelHost::RemoveRoute(int route_id) { |
| - scoped_refptr<base::MessageLoopProxy> io_loop = factory_->GetIOLoopProxy(); |
| - io_loop->PostTask(FROM_HERE, |
| - base::Bind(&GpuChannelHost::MessageFilter::RemoveRoute, |
| - channel_filter_.get(), route_id)); |
| + scoped_refptr<base::SingleThreadTaskRunner> io_task_runner = |
| + factory_->GetIOThreadTaskRunner(); |
| + io_task_runner->PostTask( |
| + FROM_HERE, base::Bind(&GpuChannelHost::MessageFilter::RemoveRoute, |
| + channel_filter_.get(), route_id)); |
| } |
| base::SharedMemoryHandle GpuChannelHost::ShareToGpuProcess( |
| @@ -387,11 +382,11 @@ GpuChannelHost::MessageFilter::~MessageFilter() {} |
| void GpuChannelHost::MessageFilter::AddRoute( |
| int route_id, |
| base::WeakPtr<IPC::Listener> listener, |
| - scoped_refptr<MessageLoopProxy> loop) { |
| + scoped_refptr<base::SingleThreadTaskRunner> task_runner) { |
| DCHECK(listeners_.find(route_id) == listeners_.end()); |
|
no sievers
2015/05/12 18:11:30
nit: maybe keep the DCHECK() from above here i.e.
Sami
2015/05/13 18:17:52
Done.
|
| GpuListenerInfo info; |
| info.listener = listener; |
| - info.loop = loop; |
| + info.task_runner = task_runner; |
| listeners_[route_id] = info; |
| } |
| @@ -412,12 +407,10 @@ bool GpuChannelHost::MessageFilter::OnMessageReceived( |
| return false; |
| const GpuListenerInfo& info = it->second; |
| - info.loop->PostTask( |
| + info.task_runner->PostTask( |
| FROM_HERE, |
| - base::Bind( |
| - base::IgnoreResult(&IPC::Listener::OnMessageReceived), |
| - info.listener, |
| - message)); |
| + base::Bind(base::IgnoreResult(&IPC::Listener::OnMessageReceived), |
| + info.listener, message)); |
| return true; |
| } |
| @@ -436,9 +429,8 @@ void GpuChannelHost::MessageFilter::OnChannelError() { |
| it != listeners_.end(); |
| it++) { |
| const GpuListenerInfo& info = it->second; |
| - info.loop->PostTask( |
| - FROM_HERE, |
| - base::Bind(&IPC::Listener::OnChannelError, info.listener)); |
| + info.task_runner->PostTask( |
| + FROM_HERE, base::Bind(&IPC::Listener::OnChannelError, info.listener)); |
| } |
| listeners_.clear(); |