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
56#ifdef V8_CPPGC_MICROTASK_QUEUE
62 "Use MicrotaskQueue allocated in cppgc, "
63 "see gn flag: v8_cppgc_microtask_queue.")
79 void* data =
nullptr) = 0;
99 virtual
void AddMicrotasksCompletedCallback(
105 virtual
void RemoveMicrotasksCompletedCallback(
111 virtual
void PerformCheckpoint(
Isolate* isolate) = 0;
116 virtual
bool IsRunningMicrotasks() const = 0;
122 virtual
int GetMicrotasksScopeDepth() const = 0;
145 enum Type { kRunMicrotasks, kDoNotRunMicrotasks };
171 internal::Isolate*
const i_isolate_;
172 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:51
virtual void EnqueueMicrotask(Isolate *isolate, Local< Function > microtask)=0
virtual ~MicrotaskQueue()=default
Definition: v8-microtask-queue.h:141
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:145
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