5#ifndef INCLUDE_V8_MICROTASKS_QUEUE_H_
6#define INCLUDE_V8_MICROTASKS_QUEUE_H_
45 static std::unique_ptr<MicrotaskQueue> New(
61 void* data =
nullptr) = 0;
119 enum Type { kRunMicrotasks, kDoNotRunMicrotasks };
128 static void PerformCheckpoint(
Isolate* isolate);
133 static int GetCurrentDepth(
Isolate* isolate);
138 static bool IsRunningMicrotasks(
Isolate* isolate);
virtual bool IsRunningMicrotasks() const =0
virtual void EnqueueMicrotask(Isolate *isolate, Local< Function > microtask)=0
virtual void AddMicrotasksCompletedCallback(MicrotasksCompletedCallbackWithData callback, void *data=nullptr)=0
virtual void RemoveMicrotasksCompletedCallback(MicrotasksCompletedCallbackWithData callback, void *data=nullptr)=0
virtual void PerformCheckpoint(Isolate *isolate)=0
virtual int GetMicrotasksScopeDepth() const =0
MicrotaskQueue(const MicrotaskQueue &)=delete
virtual void EnqueueMicrotask(v8::Isolate *isolate, MicrotaskCallback callback, void *data=nullptr)=0
MicrotaskQueue & operator=(const MicrotaskQueue &)=delete
virtual ~MicrotaskQueue()=default
MicrotasksScope & operator=(const MicrotasksScope &)=delete
MicrotasksScope(const MicrotasksScope &)=delete
internal::MicrotaskQueue *const microtask_queue_
internal::Isolate *const i_isolate_
MicrotaskQueue * microtask_queue
void(*)(void *data) MicrotaskCallback
void(*)(Isolate *, void *) MicrotasksCompletedCallbackWithData