blob: 141a2f7f0382d329e24c506aec9aef26616ccadd [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/dbus/thread_linux/dbus_thread_linux.h"
#include "base/task/lazy_thread_pool_task_runner.h"
namespace dbus_thread_linux {
namespace {
// Use TaskPriority::USER_BLOCKING, because there is a client
// (NotificationPlatformBridgeLinuxImpl) which needs to run user-blocking tasks
// on this thread. Use SingleThreadTaskRunnerThreadMode::SHARED, because DBus
// does not require an exclusive use of the thread, only the existence of a
// single thread for all tasks.
base::LazyThreadPoolSingleThreadTaskRunner g_dbus_thread_task_runner =
LAZY_THREAD_POOL_SINGLE_THREAD_TASK_RUNNER_INITIALIZER(
base::TaskTraits(base::MayBlock(), base::TaskPriority::USER_BLOCKING),
base::SingleThreadTaskRunnerThreadMode::SHARED);
} // namespace
scoped_refptr<base::SingleThreadTaskRunner> GetTaskRunner() {
return g_dbus_thread_task_runner.Get();
}
} // namespace dbus_thread_linux