#ifndef BASE_TASK_THREAD_POOL_ENVIRONMENT_CONFIG_H_
#define BASE_TASK_THREAD_POOL_ENVIRONMENT_CONFIG_H_
#include <stddef.h>
#include <array>
#include "base/base_export.h"
#include "base/task/task_traits.h"
#include "base/threading/thread.h"
namespace base {
namespace internal {
enum EnvironmentType {
FOREGROUND = 0,
FOREGROUND_BLOCKING,
UTILITY,
UTILITY_BLOCKING,
BACKGROUND,
BACKGROUND_BLOCKING,
ENVIRONMENT_COUNT
};
struct EnvironmentParams {
const char* name_suffix;
ThreadType thread_type_hint;
};
constexpr auto kEnvironmentParams = std::to_array<EnvironmentParams>({
{"Foreground", base::ThreadType::kDefault},
{"ForegroundBlocking", base::ThreadType::kDefault},
{"Utility", base::ThreadType::kUtility},
{"UtilityBlocking", base::ThreadType::kUtility},
{"Background", base::ThreadType::kBackground},
{"BackgroundBlocking", base::ThreadType::kBackground},
});
bool BASE_EXPORT CanUseBackgroundThreadTypeForWorkerThread();
bool BASE_EXPORT CanUseUtilityThreadTypeForWorkerThread();
}
}
#endif