47 lines
2.0 KiB
C
47 lines
2.0 KiB
C
// Copyright 2023 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_ANDROID_TASK_SCHEDULER_TASK_TRAITS_ANDROID_H_
|
|
#define BASE_ANDROID_TASK_SCHEDULER_TASK_TRAITS_ANDROID_H_
|
|
|
|
// Enum for the TaskTraits types exposed to Java.
|
|
//
|
|
// A Java counterpart will be generated for this enum.
|
|
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.base.task
|
|
enum TaskTraits {
|
|
THREAD_POOL_TRAITS_START = 0,
|
|
// This task will only be scheduled when machine resources are available. Once
|
|
// running, it may be descheduled if higher priority work arrives (in this
|
|
// process or another) and its running on a non-critical thread. This is the
|
|
// lowest possible priority.
|
|
BEST_EFFORT = THREAD_POOL_TRAITS_START,
|
|
// This is a lowest-priority task which may block, for example non-urgent
|
|
// logging or deletion of temporary files as clean-up.
|
|
BEST_EFFORT_MAY_BLOCK = THREAD_POOL_TRAITS_START + 1,
|
|
// This task affects UI or responsiveness of future user interactions. It is
|
|
// not an immediate response to a user interaction. Most tasks are likely to
|
|
// have this priority.
|
|
// Examples:
|
|
// - Updating the UI to reflect progress on a long task.
|
|
// - Loading data that might be shown in the UI after a future user
|
|
// interaction.
|
|
USER_VISIBLE = THREAD_POOL_TRAITS_START + 2,
|
|
// USER_VISIBLE + may block.
|
|
USER_VISIBLE_MAY_BLOCK = THREAD_POOL_TRAITS_START + 3,
|
|
// This task affects UI immediately after a user interaction.
|
|
// Example: Generating data shown in the UI immediately after a click.
|
|
USER_BLOCKING = THREAD_POOL_TRAITS_START + 4,
|
|
// USER_BLOCKING + may block.
|
|
USER_BLOCKING_MAY_BLOCK = THREAD_POOL_TRAITS_START + 5,
|
|
THREAD_POOL_TRAITS_END = USER_BLOCKING_MAY_BLOCK,
|
|
UI_TRAITS_START = THREAD_POOL_TRAITS_END + 1,
|
|
UI_BEST_EFFORT = UI_TRAITS_START,
|
|
UI_USER_VISIBLE = UI_TRAITS_START + 1,
|
|
UI_USER_BLOCKING = UI_TRAITS_START + 2,
|
|
UI_DEFAULT = UI_USER_VISIBLE,
|
|
UI_TRAITS_END = UI_USER_BLOCKING
|
|
};
|
|
|
|
#endif // BASE_ANDROID_TASK_SCHEDULER_TASK_TRAITS_ANDROID_H_
|