diff options
author | 2023-07-22 04:31:58 -0700 | |
---|---|---|
committer | 2023-07-22 04:31:58 -0700 | |
commit | c6a3467625fede0fe9901ab53b0aabd651866b64 (patch) | |
tree | 6cdd9bfd79756e97081b45de5323a7bbde62ceff /src/bun.js/bindings/JSCTaskScheduler.h | |
parent | 636cec03e10ab487b1df3057aaab60b4d2b02c99 (diff) | |
download | bun-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.h | 25 |
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 |