#pragma once #include namespace Bun { class JSCTaskScheduler { public: JSCTaskScheduler() : m_pendingTicketsKeepingEventLoopAlive() , m_pendingTicketsOther() { } static void onAddPendingWork(std::unique_ptr ticket, JSC::DeferredWorkTimer::WorkKind kind); static void onScheduleWorkSoon(JSC::DeferredWorkTimer::Ticket ticket, JSC::DeferredWorkTimer::Task&& task); static void onCancelPendingWork(JSC::DeferredWorkTimer::Ticket ticket); public: Lock m_lock; HashSet> m_pendingTicketsKeepingEventLoopAlive; HashSet> m_pendingTicketsOther; }; }