xref: /aosp_15_r20/external/cronet/base/task/thread_pool/task.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2016 The Chromium Authors
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/thread_pool/task.h"
6 
7 #include <utility>
8 
9 namespace base {
10 namespace internal {
11 
Task(const Location & posted_from,OnceClosure task,TimeTicks queue_time,TimeDelta delay,TimeDelta leeway,int sequence_num)12 Task::Task(const Location& posted_from,
13            OnceClosure task,
14            TimeTicks queue_time,
15            TimeDelta delay,
16            TimeDelta leeway,
17            int sequence_num)
18     : Task(posted_from,
19            std::move(task),
20            queue_time,
21            delay.is_zero() ? TimeTicks() : queue_time + delay,
22            leeway,
23            subtle::DelayPolicy::kFlexibleNoSooner,
24            sequence_num) {}
25 
Task(const Location & posted_from,OnceClosure task,TimeTicks queue_time,TimeTicks delayed_run_time,TimeDelta leeway,subtle::DelayPolicy delay_policy,int sequence_num)26 Task::Task(const Location& posted_from,
27            OnceClosure task,
28            TimeTicks queue_time,
29            TimeTicks delayed_run_time,
30            TimeDelta leeway,
31            subtle::DelayPolicy delay_policy,
32            int sequence_num)
33     : PendingTask(posted_from,
34                   std::move(task),
35                   queue_time,
36                   delayed_run_time,
37                   leeway,
38                   delay_policy) {
39   this->sequence_num = sequence_num;
40 }
41 
Task(const TaskMetadata & metadata,OnceClosure task)42 Task::Task(const TaskMetadata& metadata, OnceClosure task)
43     : PendingTask(metadata, std::move(task)) {}
44 
45 // This should be "= default but MSVC has trouble with "noexcept = default" in
46 // this case.
Task(Task && other)47 Task::Task(Task&& other) noexcept : PendingTask(std::move(other)) {}
48 
49 Task& Task::operator=(Task&& other) = default;
50 
51 }  // namespace internal
52 }  // namespace base
53