aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/JSCTaskScheduler.h
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2023-07-22 04:31:58 -0700
committerGravatar GitHub <noreply@github.com> 2023-07-22 04:31:58 -0700
commitc6a3467625fede0fe9901ab53b0aabd651866b64 (patch)
tree6cdd9bfd79756e97081b45de5323a7bbde62ceff /src/bun.js/bindings/JSCTaskScheduler.h
parent636cec03e10ab487b1df3057aaab60b4d2b02c99 (diff)
downloadbun-c6a3467625fede0fe9901ab53b0aabd651866b64.tar.gz
bun-c6a3467625fede0fe9901ab53b0aabd651866b64.tar.zst
bun-c6a3467625fede0fe9901ab53b0aabd651866b64.zip
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>
Diffstat (limited to 'src/bun.js/bindings/JSCTaskScheduler.h')
-rw-r--r--src/bun.js/bindings/JSCTaskScheduler.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/bun.js/bindings/JSCTaskScheduler.h b/src/bun.js/bindings/JSCTaskScheduler.h
new file mode 100644
index 000000000..3257eb9c8
--- /dev/null
+++ b/src/bun.js/bindings/JSCTaskScheduler.h
@@ -0,0 +1,25 @@
+#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;
+};
+
+} \ No newline at end of file