| Index: ui/ozone/platform/drm/gpu/proxy_helpers.h
|
| diff --git a/ui/ozone/platform/drm/gpu/proxy_helpers.h b/ui/ozone/platform/drm/gpu/proxy_helpers.h
|
| index 0cd73b785ea9f97b65ee60e5367586c309ad196d..086709c9a01b36fbb9347a88424983064e7e2130 100644
|
| --- a/ui/ozone/platform/drm/gpu/proxy_helpers.h
|
| +++ b/ui/ozone/platform/drm/gpu/proxy_helpers.h
|
| @@ -22,6 +22,15 @@ void PostAsyncTask(
|
| task_runner->PostTask(FROM_HERE, base::Bind(callback, args...));
|
| }
|
|
|
| +template <typename... Args>
|
| +void PostAsyncTaskOnce(
|
| + const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
|
| + base::OnceCallback<void(Args...)> callback,
|
| + Args... args) {
|
| + auto closure = base::BindOnce(std::move(callback), std::move(args)...);
|
| + task_runner->PostTask(FROM_HERE, std::move(closure));
|
| +}
|
| +
|
| } // namespace internal
|
|
|
| // Posts a task to a different thread and blocks waiting for the task to finish
|
| @@ -40,6 +49,17 @@ base::Callback<void(Args...)> CreateSafeCallback(
|
| base::ThreadTaskRunnerHandle::Get(), callback);
|
| }
|
|
|
| +// Creates a OnceCallback that will run |callback| on the calling thread. Useful
|
| +// when posting a task on a different thread and expecting a callback when the
|
| +// task finished (and the callback needs to run on the original thread).
|
| +template <typename... Args>
|
| +base::OnceCallback<void(Args...)> CreateSafeOnceCallback(
|
| + base::OnceCallback<void(Args...)> callback) {
|
| + return base::BindOnce(&internal::PostAsyncTaskOnce<Args...>,
|
| + base::ThreadTaskRunnerHandle::Get(),
|
| + std::move(callback));
|
| +}
|
| +
|
| } // namespace ui
|
|
|
| #endif // UI_OZONE_PLATFORM_DRM_GPU_PROXY_HELPERS_H_
|
|
|