Skip to content

vm: support shared microtask queues - #65582

Open
kairosci wants to merge 2 commits into
nodejs:mainfrom
kairosci:feat/vm-shared-microtask-queue
Open

vm: support shared microtask queues#65582
kairosci wants to merge 2 commits into
nodejs:mainfrom
kairosci:feat/vm-shared-microtask-queue

Conversation

@kairosci

Copy link
Copy Markdown

This PR introduces vm.MicrotaskQueue and the options.microtaskQueue setting in node:vm, allowing multiple contexts to share an explicit V8 microtask queue and giving authors synchronous control over draining via queue.runMicrotasks(). This enables standards-compliant event loop integration such as HTML window and same-agent iframe microtask checkpointing without premature queue draining.

Fixes: #65555

Add `vm.MicrotaskQueue` and `options.microtaskQueue` to allow multiple
contexts to share an explicit V8 microtask queue and let users control
synchronous checkpoint draining.

Fixes: nodejs#65555
Signed-off-by: Alessio Attilio <alessio.attilio@protonmail.com>
Assisted-by: Antigravity
@nodejs-github-bot nodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. lib / src Issues and PRs involving general changes in the lib/ or src/ directories. needs-ci PRs that need a full CI run. labels Aug 27, 2026
Comment thread doc/api/vm.md
Document how options.microtaskQueue and options.microtaskMode interact
across createContext, runInNewContext, and script.runInNewContext.
Update receiver type error expectation for runMicrotasks and add test
coverage for runInNewContext with microtask queues.

Signed-off-by: Alessio Attilio <alessio.attilio@protonmail.com>
Assisted-by: Antigravity
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c++ Issues and PRs that require attention from people who are familiar with C++. lib / src Issues and PRs involving general changes in the lib/ or src/ directories. needs-ci PRs that need a full CI run.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

proposal for shared microtask queues

3 participants