Skip to content

async_hooks: for promises is PromiseWrap::parentId actually useful? #18470

Closed
@ofrobots

Description

@ofrobots

On PromiseWrap objects we expose a parentId property:

node/src/async_wrap.cc

Lines 385 to 387 in 0993fbe

promise_wrap_template->SetAccessor(
FIXED_ONE_BYTE_STRING(env->isolate(), "parentId"),
PromiseWrap::getParentAsyncId);
.

The semantics of the property are:

  • If the promise has a parent promise, parentId will be the asyncId of the parent promise. By definition, and by implementation, parentId must match the triggerAsyncId available in the Init hook, as the parent promise is the trigger (cause) of the child async resource (promise) to be created. The parentId is redundant information in this case.
  • The only case where parentId would be different from triggerAsyncId is when a promise has no parent. In this case the parentId will be undefined and the triggerAsyncId would correspond to the current execution id.

It seems the only information that parentId provides is whether or not (i.e boolean) the promise has a parent.

Is there something more subtle here that I might be missing? I'd like to go ahead and document that if that's the case.

/cc @nodejs/diagnostics @nodejs/async_hooks

Metadata

Metadata

Assignees

No one assigned

    Labels

    async_hooksIssues and PRs related to the async hooks subsystem.discussIssues opened for discussions and feedbacks.questionIssues that look for answers.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions