![]() |
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.