Skip to content

Commit 2167015

Browse files
committed
Add a future TODO bullet regarding the async call stack
1 parent b4f7dd9 commit 2167015

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

design/mvp/Concurrency.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -321,12 +321,14 @@ always a well-defined async call stack.
321321

322322
The async call stack is not currently observable to running components, except
323323
that it may nondeterministically appear as part of the callstack stored in
324-
`error-context` 📝. Instead, the async call stack is meant to provide better
325-
backtraces when debugging, profiling and tracing. While particular languages can
326-
and do maintain their own async call stacks in core wasm state, without the
327-
Component Model's async call stack, linkage *between* different languages would
328-
be lost at component boundaries, leading to a loss of overall context in
329-
multi-component applications.
324+
`error-context` 📝. (In the [future](#TODO), functionality could be added to
325+
allow a [donut wrapping] parent to follow the async call stack from a child's
326+
import call to a child's export call.) Instead, the async call stack is
327+
currently used to provide backtraces when debugging, profiling, tracing and
328+
logging. While particular languages can and do maintain their own async call
329+
stacks in core wasm state, without the Component Model's async call stack,
330+
linkage *between* different languages would be lost at component boundaries,
331+
leading to a loss of overall context in multi-component applications.
330332

331333
There is an important gap between the Component Model's minimal form of
332334
Structured Concurrency and the Structured Concurrency support that appears in
@@ -1478,6 +1480,9 @@ comes after:
14781480
* allow a parent component to perform [JSPI]-like suspension of the sync calls
14791481
of its child components, thereby allowing the parent to implement the child's
14801482
sync import calls in terms of the parent's `async` imports.
1483+
* allow a [donut wrapping] parent component to ask which of a child's export
1484+
calls a particular child import call is associated with (e.g., for logging
1485+
purposes).
14811486
* add a `strict-callback` option that adds extra trapping conditions to
14821487
provide the semantic guarantees needed for engines to statically avoid
14831488
fiber creation at component-to-component `async` call boundaries

0 commit comments

Comments
 (0)