Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(23)

Unified Diff: ui/ozone/platform/drm/ozone_platform_gbm.cc

Issue 2870653002: ozone: Use the right thread for BinderRegistry. (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/ozone/platform/drm/gpu/drm_thread_proxy.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/ozone/platform/drm/ozone_platform_gbm.cc
diff --git a/ui/ozone/platform/drm/ozone_platform_gbm.cc b/ui/ozone/platform/drm/ozone_platform_gbm.cc
index 7e8d50e45f38df67647bb7f57ff1a7e1b3e930ca..df0cb0a2d8b04471226174852b8a0d78d91cb5bb 100644
--- a/ui/ozone/platform/drm/ozone_platform_gbm.cc
+++ b/ui/ozone/platform/drm/ozone_platform_gbm.cc
@@ -17,6 +17,7 @@
#include "base/command_line.h"
#include "base/macros.h"
#include "base/memory/ptr_util.h"
+#include "base/threading/thread_task_runner_handle.h"
#include "services/service_manager/public/cpp/bind_source_info.h"
#include "services/service_manager/public/cpp/binder_registry.h"
#include "ui/base/cursor/ozone/bitmap_cursor_factory_ozone.h"
@@ -108,7 +109,8 @@ class OzonePlatformGbm : public OzonePlatform {
}
void AddInterfaces(service_manager::BinderRegistry* registry) override {
registry->AddInterface<ozone::mojom::DeviceCursor>(
- base::Bind(&OzonePlatformGbm::Create, base::Unretained(this)));
+ base::Bind(&OzonePlatformGbm::Create, base::Unretained(this)),
+ gpu_task_runner_);
}
void Create(const service_manager::BindSourceInfo& source_info,
ozone::mojom::DeviceCursorRequest request) {
@@ -208,6 +210,7 @@ class OzonePlatformGbm : public OzonePlatform {
// complete.
// using_mojo_ = args.connector != nullptr;
+ gpu_task_runner_ = base::ThreadTaskRunnerHandle::Get();
varad 2017/06/02 09:59:41 exo clients segfault here during ui::OzonePlatform
InterThreadMessagingProxy* itmp;
if (using_mojo_ || single_process_) {
itmp = mus_thread_proxy_.get();
@@ -247,6 +250,7 @@ class OzonePlatformGbm : public OzonePlatform {
scoped_refptr<IPC::MessageFilter> gpu_message_filter_;
// TODO(sad): Once the mus gpu process split happens, this can go away.
std::vector<ozone::mojom::DeviceCursorRequest> pending_cursor_requests_;
+ scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner_;
// Objects in the Browser process.
std::unique_ptr<DeviceManager> device_manager_;
« no previous file with comments | « ui/ozone/platform/drm/gpu/drm_thread_proxy.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698