blob: c94b0804258a83ccc7bf1a324eb6ee8500e94fb6 [file] [log] [blame]
Alex Clarke636e7052019-05-30 10:49:371// Copyright 2019 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "base/task/single_thread_task_executor.h"
6
7#include "base/message_loop/message_pump.h"
8#include "base/task/sequence_manager/sequence_manager.h"
9
10namespace base {
11
12SingleThreadTaskExecutor::SingleThreadTaskExecutor(MessagePump::Type type)
13 : sequence_manager_(
14 sequence_manager::CreateSequenceManagerOnCurrentThreadWithPump(
15 MessagePump::Create(type),
16 sequence_manager::SequenceManager::Settings::Builder()
17 .SetMessagePumpType(type)
18 .Build())),
19 default_task_queue_(sequence_manager_->CreateTaskQueue(
20 sequence_manager::TaskQueue::Spec("default_tq"))),
21 type_(type) {
22 sequence_manager_->SetDefaultTaskRunner(default_task_queue_->task_runner());
23}
24
25SingleThreadTaskExecutor::~SingleThreadTaskExecutor() = default;
26
27scoped_refptr<SingleThreadTaskRunner> SingleThreadTaskExecutor::task_runner()
28 const {
29 return default_task_queue_->task_runner();
30}
31
32} // namespace base