Files
bun.sh/src/bun.js/bindings/JSCTaskScheduler.h
Jarred Sumner c6a3467625 Unified event loop (#3741)
* Unified event loop

* Update WebKit, add test for es-module-lexer

* Update README.md

* Use async wasm

* Explicitly set whether concurrenttask should be deinit'd

* Update package.json

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-22 04:31:58 -07:00

25 lines
775 B
C++

#pragma once
#include <JavaScriptCore/DeferredWorkTimer.h>
namespace Bun {
class JSCTaskScheduler {
public:
JSCTaskScheduler()
: m_pendingTicketsKeepingEventLoopAlive()
, m_pendingTicketsOther()
{
}
static void onAddPendingWork(std::unique_ptr<JSC::DeferredWorkTimer::TicketData> 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<std::unique_ptr<JSC::DeferredWorkTimer::TicketData>> m_pendingTicketsKeepingEventLoopAlive;
HashSet<std::unique_ptr<JSC::DeferredWorkTimer::TicketData>> m_pendingTicketsOther;
};
}