#include "base/sequence_token.h"
#include "base/atomic_sequence_num.h"
#include "third_party/abseil-cpp/absl/base/attributes.h"
namespace base {
namespace internal {
namespace {
base::AtomicSequenceNumber g_sequence_token_generator;
base::AtomicSequenceNumber g_task_token_generator;
ABSL_CONST_INIT thread_local SequenceToken current_sequence_token;
ABSL_CONST_INIT thread_local TaskToken current_task_token;
ABSL_CONST_INIT thread_local bool current_task_is_thread_bound = …;
ABSL_CONST_INIT thread_local bool current_task_is_running_synchronously = …;
}
bool SequenceToken::operator==(const SequenceToken& other) const { … }
bool SequenceToken::operator!=(const SequenceToken& other) const { … }
bool SequenceToken::IsValid() const { … }
int SequenceToken::ToInternalValue() const { … }
SequenceToken SequenceToken::Create() { … }
SequenceToken SequenceToken::GetForCurrentThread() { … }
bool TaskToken::operator==(const TaskToken& other) const { … }
bool TaskToken::operator!=(const TaskToken& other) const { … }
bool TaskToken::IsValid() const { … }
TaskToken TaskToken::Create() { … }
TaskToken TaskToken::GetForCurrentThread() { … }
bool CurrentTaskIsThreadBound() { … }
TaskScope::TaskScope(SequenceToken sequence_token,
bool is_single_threaded,
bool is_running_synchronously)
: … { … }
TaskScope::~TaskScope() { … }
}
bool CurrentTaskIsRunningSynchronously() { … }
}