Skip to content

doc: warn against awaiting replies in module hooks - #65590

Open
bitpshr wants to merge 1 commit into
nodejs:mainfrom
bitpshr:doc/hooks-no-main-thread-await
Open

doc: warn against awaiting replies in module hooks#65590
bitpshr wants to merge 1 commit into
nodejs:mainfrom
bitpshr:doc/hooks-no-main-thread-await

Conversation

@bitpshr

@bitpshr bitpshr commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Fixes: #63085

module.register() documents that hooks can send messages back to the registering thread, and the example does exactly that. What is not documented is that a hook cannot wait for a reply. Resolution and loading are synchronous from the perspective of the thread that triggered them, so that thread is blocked until the hook settles and can never answer in the meantime. Awaiting a reply inside a resolve or load hook deadlocks both threads.

This adds a short paragraph after the messaging example saying so. The issue reporter hit this and it is not obvious from the surrounding text, which reads as though the channel is bidirectional in the usual way.

Awaiting a reply from the registering thread inside a resolve or load
hook deadlocks: resolution is synchronous from that thread's
perspective, so it is blocked in the request and cannot answer.

Fixes: nodejs#63085
Signed-off-by: Paul Bouchon <mail@bitpshr.net>
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/loaders

@nodejs-github-bot nodejs-github-bot added doc Issues and PRs related to the documentations. module Issues and PRs related to the module subsystem. labels Aug 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

doc Issues and PRs related to the documentations. module Issues and PRs related to the module subsystem.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Loader stalls MessagePort since v24

2 participants