Avi Drissman | e4622aa | 2022-09-08 20:36:06 | [diff] [blame] | 1 | // Copyright 2012 The Chromium Authors |
[email protected] | 6b28d94 | 2012-02-15 01:43:19 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
| 4 | |
Patrick Monette | 643cdf6 | 2021-10-15 19:13:42 | [diff] [blame] | 5 | #include "base/task/task_runner.h" |
[email protected] | 6b28d94 | 2012-02-15 01:43:19 | [diff] [blame] | 6 | |
tzik | 0352751 | 2017-02-08 12:29:47 | [diff] [blame] | 7 | #include <utility> |
| 8 | |
Hans Wennborg | c3cffa6 | 2020-04-27 10:09:12 | [diff] [blame] | 9 | #include "base/check.h" |
[email protected] | 6b28d94 | 2012-02-15 01:43:19 | [diff] [blame] | 10 | #include "base/compiler_specific.h" |
Avi Drissman | 63e1f99 | 2023-01-13 18:54:43 | [diff] [blame] | 11 | #include "base/functional/bind.h" |
Keishi Hattori | 0e45c02 | 2021-11-27 09:25:52 | [diff] [blame] | 12 | #include "base/memory/raw_ptr.h" |
[email protected] | 6b28d94 | 2012-02-15 01:43:19 | [diff] [blame] | 13 | #include "base/threading/post_task_and_reply_impl.h" |
David Sanders | 2799ee2 | 2022-02-03 05:01:48 | [diff] [blame] | 14 | #include "base/time/time.h" |
[email protected] | 6b28d94 | 2012-02-15 01:43:19 | [diff] [blame] | 15 | |
| 16 | namespace base { |
| 17 | |
Brett Wilson | 8e88b31 | 2017-09-12 05:22:16 | [diff] [blame] | 18 | bool TaskRunner::PostTask(const Location& from_here, OnceClosure task) { |
tzik | 070c8ffb | 2017-03-29 05:28:12 | [diff] [blame] | 19 | return PostDelayedTask(from_here, std::move(task), base::TimeDelta()); |
[email protected] | 6b28d94 | 2012-02-15 01:43:19 | [diff] [blame] | 20 | } |
| 21 | |
Brett Wilson | 8e88b31 | 2017-09-12 05:22:16 | [diff] [blame] | 22 | bool TaskRunner::PostTaskAndReply(const Location& from_here, |
tzik | 6e42784 | 2017-04-05 10:13:21 | [diff] [blame] | 23 | OnceClosure task, |
| 24 | OnceClosure reply) { |
Daniel Cheng | 099aa05 | 2023-08-21 21:57:54 | [diff] [blame] | 25 | return internal::PostTaskAndReplyImpl( |
| 26 | [this](const Location& location, OnceClosure task) { |
| 27 | return PostTask(location, std::move(task)); |
| 28 | }, |
tzik | 0352751 | 2017-02-08 12:29:47 | [diff] [blame] | 29 | from_here, std::move(task), std::move(reply)); |
[email protected] | 6b28d94 | 2012-02-15 01:43:19 | [diff] [blame] | 30 | } |
| 31 | |
Chris Watkins | bb7211c | 2017-11-29 07:16:38 | [diff] [blame] | 32 | TaskRunner::TaskRunner() = default; |
[email protected] | 6b28d94 | 2012-02-15 01:43:19 | [diff] [blame] | 33 | |
Chris Watkins | bb7211c | 2017-11-29 07:16:38 | [diff] [blame] | 34 | TaskRunner::~TaskRunner() = default; |
[email protected] | 6b28d94 | 2012-02-15 01:43:19 | [diff] [blame] | 35 | |
| 36 | void TaskRunner::OnDestruct() const { |
| 37 | delete this; |
| 38 | } |
| 39 | |
| 40 | void TaskRunnerTraits::Destruct(const TaskRunner* task_runner) { |
| 41 | task_runner->OnDestruct(); |
| 42 | } |
| 43 | |
| 44 | } // namespace base |