![]() |
v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
|
#include <local-heap.h>
Classes | |
class | AtomicThreadState |
class | ThreadState |
Public Types | |
using | GCEpilogueCallback = void(void*) |
Static Public Member Functions | |
static void | SetCurrent (LocalHeap *local_heap) |
Private Types | |
using | ParkedBit = base::BitField8<bool, 0, 1> |
using | SafepointRequestedBit = ParkedBit::Next<bool, 1> |
using | CollectionRequestedBit = SafepointRequestedBit::Next<bool, 1> |
Private Member Functions | |
template<typename Callback > | |
V8_INLINE void | ExecuteWithStackMarker (Callback callback) |
void | Park () |
void | Unpark () |
void | ParkSlowPath () |
void | UnparkSlowPath () |
void | EnsureParkedBeforeDestruction () |
void | SafepointSlowPath () |
void | SleepInSafepoint () |
void | SleepInUnpark () |
template<typename Callback > | |
V8_INLINE void | ParkAndExecuteCallback (Callback callback) |
void | EnsurePersistentHandles () |
void | InvokeGCEpilogueCallbacksInSafepoint (GCCallbacksInSafepoint::GCType gc_type) |
void | SetUpMainThread (LinearAllocationArea &new_allocation_info, LinearAllocationArea &old_allocation_info) |
void | SetUpMarkingBarrier () |
void | SetUpSharedMarking () |
Private Attributes | |
Heap * | heap_ |
V8_NO_UNIQUE_ADDRESS PtrComprCageAccessScope | ptr_compr_cage_access_scope_ |
bool | is_main_thread_ |
AtomicThreadState | state_ |
bool | allocation_failed_ |
int | nested_parked_scopes_ |
Isolate * | saved_current_isolate_ = nullptr |
LocalHeap * | prev_ |
LocalHeap * | next_ |
std::unique_ptr< LocalHandles > | handles_ |
std::unique_ptr< PersistentHandles > | persistent_handles_ |
std::unique_ptr< MarkingBarrier > | marking_barrier_ |
GCCallbacksInSafepoint | gc_epilogue_callbacks_ |
HeapAllocator | heap_allocator_ |
MarkingBarrier * | saved_marking_barrier_ = nullptr |
::heap::base::Stack | stack_ |
Friends | |
class | CollectionBarrier |
class | GlobalSafepoint |
class | Heap |
class | Isolate |
class | IsolateSafepoint |
class | IsolateSafepointScope |
class | ParkedScope |
class | UnparkedScope |
Definition at line 50 of file local-heap.h.
|
private |
Definition at line 243 of file local-heap.h.
using v8::internal::LocalHeap::GCEpilogueCallback = void(void*) |
Definition at line 52 of file local-heap.h.
|
private |
Definition at line 241 of file local-heap.h.
|
private |
Definition at line 242 of file local-heap.h.
|
explicit |
v8::internal::LocalHeap::~LocalHeap | ( | ) |
void v8::internal::LocalHeap::AddGCEpilogueCallback | ( | GCEpilogueCallback * | callback, |
void * | data, | ||
GCCallbacksInSafepoint::GCType | gc_type = GCCallbacksInSafepoint::GCType::kAll ) |
Definition at line 456 of file local-heap.cc.
|
inline |
Definition at line 29 of file local-heap-inl.h.
|
inline |
Tagged< HeapObject > v8::internal::LocalHeap::AllocateRawWith | ( | int | size_in_bytes, |
AllocationType | allocation, | ||
AllocationOrigin | origin = AllocationOrigin::kRuntime, | ||
AllocationAlignment | alignment = kTaggedAligned ) |
Definition at line 36 of file local-heap-inl.h.
|
inline |
Definition at line 238 of file local-heap.h.
|
inline |
void v8::internal::LocalHeap::AttachPersistentHandles | ( | std::unique_ptr< PersistentHandles > | persistent_handles | ) |
|
inline |
Definition at line 200 of file local-heap.h.
std::unique_ptr< PersistentHandles > v8::internal::LocalHeap::DetachPersistentHandles | ( | ) |
|
private |
Definition at line 332 of file local-heap.cc.
|
private |
V8_INLINE void v8::internal::LocalHeap::ExecuteBackgroundThreadWhileParked | ( | Callback | callback | ) |
Definition at line 95 of file local-heap-inl.h.
V8_INLINE void v8::internal::LocalHeap::ExecuteMainThreadWhileParked | ( | Callback | callback | ) |
Definition at line 88 of file local-heap-inl.h.
V8_INLINE void v8::internal::LocalHeap::ExecuteWhileParked | ( | Callback | callback | ) |
Definition at line 82 of file local-heap-inl.h.
|
private |
Definition at line 72 of file local-heap-inl.h.
void v8::internal::LocalHeap::FreeLinearAllocationAreas | ( | ) |
Definition at line 411 of file local-heap.cc.
void v8::internal::LocalHeap::FreeLinearAllocationAreasAndResetFreeLists | ( | ) |
Definition at line 445 of file local-heap.cc.
void v8::internal::LocalHeap::FreeSharedLinearAllocationAreasAndResetFreeLists | ( | ) |
Definition at line 449 of file local-heap.cc.
|
inline |
|
inline |
|
private |
Definition at line 468 of file local-heap.cc.
|
inline |
bool v8::internal::LocalHeap::IsParked | ( | ) | const |
Definition at line 210 of file local-heap.cc.
|
inline |
bool v8::internal::LocalHeap::IsRunning | ( | ) | const |
Definition at line 217 of file local-heap.cc.
void v8::internal::LocalHeap::MakeLinearAllocationAreasIterable | ( | ) |
Definition at line 421 of file local-heap.cc.
|
inline |
void v8::internal::LocalHeap::MarkLinearAllocationAreasBlack | ( | ) |
Definition at line 425 of file local-heap.cc.
void v8::internal::LocalHeap::MarkSharedLinearAllocationAreasBlack | ( | ) |
Definition at line 433 of file local-heap.cc.
|
inline |
Definition at line 81 of file local-heap.h.
|
inline |
Definition at line 88 of file local-heap.h.
|
inline |
|
inline |
Definition at line 94 of file local-heap.h.
void v8::internal::LocalHeap::NotifyObjectSizeChange | ( | Tagged< HeapObject > | object, |
int | old_size, | ||
int | new_size, | ||
ClearRecordedSlots | clear_recorded_slots ) |
|
inlineprivate |
Definition at line 337 of file local-heap.h.
|
private |
|
private |
|
inline |
Definition at line 203 of file local-heap.h.
void v8::internal::LocalHeap::RemoveGCEpilogueCallback | ( | GCEpilogueCallback * | callback, |
void * | data ) |
Definition at line 462 of file local-heap.cc.
|
inline |
|
private |
|
static |
|
inline |
|
private |
Definition at line 138 of file local-heap.cc.
void v8::internal::LocalHeap::SetUpMainThreadForTesting | ( | ) |
|
private |
|
private |
Definition at line 152 of file local-heap.cc.
|
private |
Definition at line 359 of file local-heap.cc.
|
private |
Definition at line 316 of file local-heap.cc.
void v8::internal::LocalHeap::UnmarkLinearAllocationsArea | ( | ) |
Definition at line 429 of file local-heap.cc.
void v8::internal::LocalHeap::UnmarkSharedLinearAllocationsArea | ( | ) |
Definition at line 439 of file local-heap.cc.
|
inlineprivate |
|
private |
void v8::internal::LocalHeap::WeakenDescriptorArrays | ( | GlobalHandleVector< DescriptorArray > | strong_descriptor_arrays | ) |
|
friend |
Definition at line 407 of file local-heap.h.
|
friend |
Definition at line 408 of file local-heap.h.
|
friend |
Definition at line 409 of file local-heap.h.
|
friend |
Definition at line 410 of file local-heap.h.
|
friend |
Definition at line 411 of file local-heap.h.
|
friend |
Definition at line 412 of file local-heap.h.
|
friend |
Definition at line 413 of file local-heap.h.
|
friend |
Definition at line 414 of file local-heap.h.
|
private |
Definition at line 386 of file local-heap.h.
|
private |
Definition at line 398 of file local-heap.h.
|
private |
Definition at line 394 of file local-heap.h.
|
private |
Definition at line 376 of file local-heap.h.
|
private |
Definition at line 400 of file local-heap.h.
|
private |
Definition at line 378 of file local-heap.h.
|
private |
Definition at line 396 of file local-heap.h.
|
private |
Definition at line 387 of file local-heap.h.
|
private |
Definition at line 392 of file local-heap.h.
|
private |
Definition at line 395 of file local-heap.h.
|
private |
Definition at line 391 of file local-heap.h.
|
private |
Definition at line 377 of file local-heap.h.
|
private |
Definition at line 389 of file local-heap.h.
|
private |
Definition at line 402 of file local-heap.h.
|
private |
Definition at line 405 of file local-heap.h.
|
private |
Definition at line 380 of file local-heap.h.