#include "base/task/thread_pool/sequence.h"
#include <utility>
#include "base/check.h"
#include "base/critical_closure.h"
#include "base/feature_list.h"
#include "base/functional/bind.h"
#include "base/memory/ptr_util.h"
#include "base/memory/stack_allocated.h"
#include "base/task/task_features.h"
#include "base/time/time.h"
namespace base {
namespace internal {
namespace {
class SCOPED_LOCKABLE AnnotateLockAcquired { … };
void MaybeMakeCriticalClosure(TaskShutdownBehavior shutdown_behavior,
Task& task) { … }
}
Sequence::Transaction::Transaction(Sequence* sequence)
: … { … }
Sequence::Transaction::Transaction(Sequence::Transaction&& other) = default;
Sequence::Transaction::~Transaction() = default;
bool Sequence::Transaction::WillPushImmediateTask() { … }
void Sequence::Transaction::PushImmediateTask(Task task) { … }
bool Sequence::Transaction::PushDelayedTask(Task task) { … }
bool Sequence::DelayedTaskGreater::operator()(const Task& lhs,
const Task& rhs) const { … }
TaskSource::RunStatus Sequence::WillRunTask() { … }
bool Sequence::OnBecomeReady() { … }
size_t Sequence::GetRemainingConcurrency() const { … }
Task Sequence::TakeNextImmediateTask() { … }
Task Sequence::TakeEarliestTask() { … }
void Sequence::UpdateReadyTimes() { … }
Task Sequence::TakeTask(TaskSource::Transaction* transaction) { … }
bool Sequence::DidProcessTask(TaskSource::Transaction* transaction) { … }
bool Sequence::WillReEnqueue(TimeTicks now,
TaskSource::Transaction* transaction) { … }
bool Sequence::DelayedSortKeyWillChange(const Task& delayed_task) const { … }
bool Sequence::HasReadyTasks(TimeTicks now) const { … }
bool Sequence::HasImmediateTasks() const { … }
TaskSourceSortKey Sequence::GetSortKey() const { … }
TimeTicks Sequence::GetDelayedSortKey() const { … }
std::optional<Task> Sequence::Clear(TaskSource::Transaction* transaction) { … }
void Sequence::ReleaseTaskRunner() { … }
Sequence::Sequence(const TaskTraits& traits,
SequencedTaskRunner* task_runner,
TaskSourceExecutionMode execution_mode)
: … { … }
Sequence::~Sequence() = default;
Sequence::Transaction Sequence::BeginTransaction() { … }
ExecutionEnvironment Sequence::GetExecutionEnvironment() { … }
bool Sequence::IsEmpty() const { … }
}
}