107 per_thread->set_thread_state(
nullptr);
122 if (per_thread ==
nullptr || per_thread->thread_state() ==
nullptr) {
132 char* from = state->data();
142 per_thread->set_thread_state(
nullptr);
174 thread_manager_(thread_manager) {}
193 flying_anchor->
next_ =
this;
202 return new_thread_state;
221 : mutex_owner_(
ThreadId::Invalid()),
222 lazily_archived_thread_(
ThreadId::Invalid()),
223 lazily_archived_thread_state_(nullptr),
224 free_anchor_(nullptr),
225 in_use_anchor_(nullptr),
254 per_thread->set_thread_state(state);
266 char* to = state->data();
299 return data !=
nullptr && data->thread_state() !=
nullptr;
305 state = state->
Next()) {
306 char* data = state->data();
317 state = state->
Next()) {
318 char* data = state->data();
uint8_t data_[MAX_STACK_LENGTH]
void Initialize(Isolate *isolate)
internal::Isolate * isolate_
static bool IsLocked(Isolate *isolate)
internal::Isolate * isolate_
void Initialize(Isolate *isolate)
char * RestoreState(char *from)
void FreeThreadResources()
char * ArchiveState(char *to)
static int ArchiveSpacePerThread()
void InitThread(const ExecutionAccess &lock)
char * ArchiveDebug(char *to)
void FreeThreadResources()
void Iterate(RootVisitor *v)
static int ArchiveSpacePerThread()
char * RestoreDebug(char *from)
void FreeThreadResources()
V8_EXPORT_PRIVATE void Iterate(v8::internal::RootVisitor *v)
char * ArchiveThread(char *to)
char * RestoreThread(char *from)
static int ArchiveSpacePerThread()
v8::TryCatch * try_catch_handler()
RegExpStack * regexp_stack() const
HandleScopeImplementer * handle_scope_implementer() const
Bootstrapper * bootstrapper()
void InitializeThreadLocal()
PerIsolateThreadData * FindPerThreadDataForThisThread()
static int ArchiveSpacePerThread()
void IterateThread(ThreadVisitor *v, char *t)
ThreadManager * thread_manager() const
char * RestoreThread(char *from)
void FreeThreadResources()
char * ArchiveThread(char *to)
PerIsolateThreadData * FindOrAllocatePerThreadDataForThisThread()
StackGuard * stack_guard()
void set_was_locker_ever_used()
void Iterate(RootVisitor *v)
char * ArchiveStack(char *to)
void FreeThreadResources()
static constexpr int ArchiveSpacePerThread()
char * RestoreStack(char *from)
static char * RestoreState(Isolate *isolate, char *from)
static void Iterate(Isolate *isolate, RootVisitor *v)
static int ArchiveSpacePerThread()
static char * ArchiveState(Isolate *isolate, char *to)
static char * Iterate(RootVisitor *v, char *thread_storage)
void InitThread(const ExecutionAccess &lock)
static int ArchiveSpacePerThread()
char * ArchiveStackGuard(char *to)
char * RestoreStackGuard(char *from)
void FreeThreadResources()
static ThreadId Current()
static constexpr ThreadId Invalid()
void Iterate(RootVisitor *v)
ThreadId lazily_archived_thread_
void IterateArchivedThreads(ThreadVisitor *v)
ThreadState * FirstThreadStateInUse()
ThreadState * lazily_archived_thread_state_
ThreadState * in_use_anchor_
ThreadManager(Isolate *isolate)
void FreeThreadResources()
void InitThread(const ExecutionAccess &)
std::atomic< ThreadId > mutex_owner_
void DeleteThreadStateList(ThreadState *anchor)
bool IsLockedByCurrentThread() const
ThreadState * free_anchor_
V8_EXPORT_PRIVATE void Unlock()
void EagerlyArchiveThread()
ThreadState * GetFreeThreadState()
ThreadManager * thread_manager_
ThreadState(ThreadManager *thread_manager)
LiftoffAssembler::CacheState state
void Relaxed_Store(volatile Atomic8 *ptr, Atomic8 value)
void DeleteArray(T *array)
static int ArchiveSpacePerThread()
T * NewArray(size_t size)
#define DCHECK_NOT_NULL(val)
#define DCHECK_NE(v1, v2)
#define DCHECK(condition)
#define DCHECK_EQ(v1, v2)