37#ifdef V8_ENABLE_ALLOCATION_TIMEOUT
38 std::optional<int> UpdateAllocationTimeout() final {
return std::nullopt; }
49 std::make_unique<GCInvoker::GCInvokerImpl::GCTask>(collector, config);
50 auto handle = task->GetHandle();
51 runner->PostNonNestableTask(std::move(task));
90 stack_support_(stack_support) {}
93 if (gc_task_handle_) {
94 gc_task_handle_.Cancel();
100 if ((config.
stack_state == StackState::kNoHeapPointers) ||
106 if (!gc_task_handle_) {
111 gc_task_handle_ = GCTask::Post(
120 if ((stack_support_ !=
133 collector_->StartIncrementalGarbageCollection(config);
144 impl_->CollectGarbage(config);
148 impl_->StartIncrementalGarbageCollection(config);
154 return impl_->overridden_stack_state();
158 impl_->set_override_stack_state(state);
162 impl_->clear_overridden_stack_state();
165#ifdef V8_ENABLE_ALLOCATION_TIMEOUT
166std::optional<int> GCInvoker::UpdateAllocationTimeout() {
167 return impl_->UpdateAllocationTimeout();
@ kSupportsConservativeStackScan
GarbageCollector * collector_
static Handle Post(GarbageCollector *collector, cppgc::TaskRunner *runner, GCConfig config)
GCTask(GarbageCollector *collector, GCConfig config)
GCInvokerImpl(GarbageCollector *, cppgc::Platform *, cppgc::Heap::StackSupport)
size_t epoch() const final
cppgc::Heap::StackSupport stack_support_
GCInvokerImpl(const GCInvokerImpl &)=delete
GCTask::Handle gc_task_handle_
void CollectGarbage(GCConfig) final
void clear_overridden_stack_state() final
void StartIncrementalGarbageCollection(GCConfig) final
void set_override_stack_state(EmbedderStackState state) final
std::optional< EmbedderStackState > overridden_stack_state() const final
GCInvokerImpl & operator=(const GCInvokerImpl &)=delete
GarbageCollector * collector_
cppgc::Platform * platform_
void CollectGarbage(GCConfig) final
size_t epoch() const final
void clear_overridden_stack_state() final
std::unique_ptr< GCInvokerImpl > impl_
std::optional< EmbedderStackState > overridden_stack_state() const final
GCInvoker(GarbageCollector *, cppgc::Platform *, cppgc::Heap::StackSupport)
void set_override_stack_state(EmbedderStackState state) final
void StartIncrementalGarbageCollection(GCConfig) final
virtual void clear_overridden_stack_state()=0
virtual std::optional< EmbedderStackState > overridden_stack_state() const =0
virtual size_t epoch() const =0
virtual void set_override_stack_state(EmbedderStackState state)=0
virtual void CollectGarbage(GCConfig)=0
virtual bool NonNestableTasksEnabled() const
MarkCompactCollector * collector_
#define DCHECK_NE(v1, v2)
#define DCHECK_EQ(v1, v2)