Index: mojo/edk/embedder/embedder.cc |
diff --git a/mojo/edk/embedder/embedder.cc b/mojo/edk/embedder/embedder.cc |
index 1b3fabda47214e7522f37efdea0d4c47f95f096f..ef32a32597bc4cf20c757095ec74eda5b7fa30d1 100644 |
--- a/mojo/edk/embedder/embedder.cc |
+++ b/mojo/edk/embedder/embedder.cc |
@@ -47,26 +47,6 @@ system::ChannelId MakeChannelId() { |
return static_cast<system::ChannelId>(-new_counter_value); |
} |
-// Helper for |CreateChannel()|. Called on the channel creation thread. |
-void CreateChannelHelper( |
- ScopedPlatformHandle platform_handle, |
- scoped_ptr<ChannelInfo> channel_info, |
- scoped_refptr<system::ChannelEndpoint> channel_endpoint, |
- DidCreateChannelCallback callback, |
- scoped_refptr<base::TaskRunner> callback_thread_task_runner) { |
- channel_info->channel_id = MakeChannelId(); |
- internal::g_channel_manager->CreateChannelOnIOThread( |
- channel_info->channel_id, platform_handle.Pass(), channel_endpoint); |
- |
- // Hand the channel back to the embedder. |
- if (callback_thread_task_runner) { |
- callback_thread_task_runner->PostTask( |
- FROM_HERE, base::Bind(callback, channel_info.release())); |
- } else { |
- callback.Run(channel_info.release()); |
- } |
-} |
- |
} // namespace |
namespace internal { |
@@ -139,11 +119,12 @@ ScopedMessagePipeHandle CreateChannel( |
scoped_ptr<ChannelInfo> channel_info(new ChannelInfo()); |
if (rv.is_valid()) { |
- io_thread_task_runner->PostTask( |
- FROM_HERE, |
- base::Bind(&CreateChannelHelper, base::Passed(&platform_handle), |
- base::Passed(&channel_info), channel_endpoint, callback, |
- callback_thread_task_runner)); |
+ channel_info->channel_id = MakeChannelId(); |
+ internal::g_channel_manager->CreateChannel( |
+ channel_info->channel_id, platform_handle.Pass(), channel_endpoint, |
+ io_thread_task_runner, |
+ base::Bind(callback, base::Unretained(channel_info.release())), |
+ callback_thread_task_runner); |
} else { |
(callback_thread_task_runner ? callback_thread_task_runner |
: io_thread_task_runner) |