Commit 9340143c authored by Xi Han's avatar Xi Han Committed by Commit Bot

Use LazySingleThreadTaskRunner for process launcher thread.

This is a follow up to CL (https://chromium-review.googlesource.com/c/chromium/src/+/941264).
LazySingleThreadTaskRunner allows the created single-thread task runner be be
recycled in unittests.

Bug: 815225
Change-Id: I70402798883f3550aced26ef07d48d8e882967f4
Reviewed-on: https://chromium-review.googlesource.com/964782Reviewed-by: default avatarJohn Abd-El-Malek <jam@chromium.org>
Reviewed-by: default avatarWez <wez@chromium.org>
Commit-Queue: Xi Han <hanxi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#543822}
parent 82a379a4
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include "base/metrics/histogram_macros.h" #include "base/metrics/histogram_macros.h"
#include "base/no_destructor.h" #include "base/no_destructor.h"
#include "base/single_thread_task_runner.h" #include "base/single_thread_task_runner.h"
#include "base/task_scheduler/lazy_task_runner.h"
#include "base/task_scheduler/post_task.h" #include "base/task_scheduler/post_task.h"
#include "base/task_scheduler/single_thread_task_runner_thread_mode.h" #include "base/task_scheduler/single_thread_task_runner_thread_mode.h"
#include "base/task_scheduler/task_traits.h" #include "base/task_scheduler/task_traits.h"
...@@ -206,17 +207,17 @@ base::SingleThreadTaskRunner* GetProcessLauncherTaskRunner() { ...@@ -206,17 +207,17 @@ base::SingleThreadTaskRunner* GetProcessLauncherTaskRunner() {
static base::NoDestructor<scoped_refptr<base::SingleThreadTaskRunner>> static base::NoDestructor<scoped_refptr<base::SingleThreadTaskRunner>>
launcher_task_runner( launcher_task_runner(
android::LauncherThread::GetMessageLoop()->task_runner()); android::LauncherThread::GetMessageLoop()->task_runner());
return (*launcher_task_runner).get();
#else // defined(OS_ANDROID) #else // defined(OS_ANDROID)
constexpr base::TaskTraits task_traits = { // TODO(http://crbug.com/820200): Investigate whether we could use
base::MayBlock(), base::TaskPriority::USER_BLOCKING, // SequencedTaskRunner on platforms other than Windows.
base::TaskShutdownBehavior::BLOCK_SHUTDOWN}; static base::LazySingleThreadTaskRunner launcher_task_runner =
// TODO(wez): Investigates whether we could use SequencedTaskRunner on LAZY_SINGLE_THREAD_TASK_RUNNER_INITIALIZER(
// platforms other than Windows. http://crbug.com/820200. base::TaskTraits({base::MayBlock(), base::TaskPriority::USER_BLOCKING,
static base::NoDestructor<scoped_refptr<base::SingleThreadTaskRunner>> base::TaskShutdownBehavior::BLOCK_SHUTDOWN}),
launcher_task_runner(base::CreateSingleThreadTaskRunnerWithTraits( base::SingleThreadTaskRunnerThreadMode::DEDICATED);
task_traits, base::SingleThreadTaskRunnerThreadMode::DEDICATED)); return launcher_task_runner.Get().get();
#endif // defined(OS_ANDROID) #endif // defined(OS_ANDROID)
return (*launcher_task_runner).get();
} }
// static // static
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment