| // Copyright 2021 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef BASE_TASK_DELAY_POLICY_H_ |
| #define BASE_TASK_DELAY_POLICY_H_ |
| |
| namespace base { |
| namespace subtle { |
| |
| // Policies affecting how a delayed task is scheduled when a TimeTicks is |
| // specified. |
| enum class DelayPolicy { |
| // A delayed task with kFlexibleNoSooner may not run any sooner than the |
| // specified time, but might run slightly after. This is the behavior implied |
| // by PostDelayedTask. |
| kFlexibleNoSooner, |
| // A delayed task with kFlexiblePreferEarly means the task should attempt to |
| // run near the deadline and preferably a little bit before than after if the |
| // scheduler applies slack. |
| kFlexiblePreferEarly, |
| // A delayed task with kPrecise means it may not run any sooner than the |
| // specified time and preferably as close as possible to the specified time, |
| // which may affect scheduling policies if the scheduler usually applies |
| // slack. |
| kPrecise, |
| }; |
| |
| } // namespace subtle |
| } // namespace base |
| |
| #endif // BASE_TASK_SEQUENCED_TASK_RUNNER_H_ |