// Copyright 2016 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_THREAD_POOL_THREAD_POOL_INSTANCE_H_ #define BASE_TASK_THREAD_POOL_THREAD_POOL_INSTANCE_H_ #include <memory> #include <string_view> #include "base/base_export.h" #include "base/functional/callback.h" #include "base/gtest_prod_util.h" #include "base/task/sequenced_task_runner.h" #include "base/task/single_thread_task_runner.h" #include "base/task/single_thread_task_runner_thread_mode.h" #include "base/task/task_runner.h" #include "base/task/task_traits.h" #include "base/time/time.h" #include "build/build_config.h" namespace gin { class V8Platform; } namespace content { // Can't use the FRIEND_TEST_ALL_PREFIXES macro because the test is in a // different namespace. class BrowserMainLoopTest_CreateThreadsInSingleProcess_Test; } // namespace content namespace base { class WorkerThreadObserver; class ThreadPoolTestHelpers; // Interface for a thread pool and static methods to manage the instance used // by the thread_pool.h API. // // The thread pool doesn't create threads until Start() is called. Tasks can // be posted at any time but will not run until after Start() is called. // // The instance methods of this class are thread-safe unless otherwise noted. // // Note: All thread pool users should go through base/task/thread_pool.h instead // of this interface except for the one callsite per process which manages the // process's instance. class BASE_EXPORT ThreadPoolInstance { … }; } // namespace base #endif // BASE_TASK_THREAD_POOL_THREAD_POOL_INSTANCE_H_