5#ifndef INCLUDE_V8_MICROTASKS_QUEUE_H_
6#define INCLUDE_V8_MICROTASKS_QUEUE_H_
17#ifdef V8_CPPGC_MICROTASK_QUEUE
47#ifdef V8_CPPGC_MICROTASK_QUEUE
51#error "Non-CppGC MicrotaskQueue definition is not supported."
58#ifdef V8_CPPGC_MICROTASK_QUEUE
75 void* data =
nullptr) = 0;
95 virtual
void AddMicrotasksCompletedCallback(
101 virtual
void RemoveMicrotasksCompletedCallback(
107 virtual
void PerformCheckpoint(
Isolate* isolate) = 0;
112 virtual
bool IsRunningMicrotasks() const = 0;
118 virtual
int GetMicrotasksScopeDepth() const = 0;
141 enum Type { kRunMicrotasks, kDoNotRunMicrotasks };
167 internal::Isolate*
const i_isolate_;
168 internal::MicrotaskQueue*
const microtask_queue_;
Definition: garbage-collected.h:53
Definition: name-provider.h:26
Definition: v8-isolate.h:292
Definition: v8-local-handle.h:366
Definition: v8-microtask-queue.h:53
virtual void EnqueueMicrotask(Isolate *isolate, Local< Function > microtask)=0
virtual ~MicrotaskQueue()=default
Definition: v8-microtask-queue.h:137
MicrotasksScope & operator=(const MicrotasksScope &)=delete
static void PerformCheckpoint(Isolate *isolate)
MicrotasksScope(Isolate *isolate, MicrotaskQueue *microtask_queue, Type type)
MicrotasksScope(Local< Context > context, Type type)
MicrotasksScope(const MicrotasksScope &)=delete
Type
Definition: v8-microtask-queue.h:141
static int GetCurrentDepth(Isolate *isolate)
static bool IsRunningMicrotasks(Isolate *isolate)
#define CPPGC_STACK_ALLOCATED()
Definition: macros.h:44
Definition: libplatform.h:15
void(*)(void *data) MicrotaskCallback
Definition: v8-microtask.h:17
MicrotasksPolicy
Definition: v8-microtask.h:28
void(*)(Isolate *, void *) MicrotasksCompletedCallbackWithData
Definition: v8-microtask.h:16
void(*)(Local< Data > data) MicrotaskCallbackWithData
Definition: v8-microtask.h:18
#define V8_EXPORT
Definition: v8config.h:867
#define V8_DEPRECATE_SOON(message)
Definition: v8config.h:624
#define V8_NODISCARD
Definition: v8config.h:703