Skip to content

Commit 5ed2436

Browse files
alexcrichtondicej
andauthored
Add async call stacks to the public API, use it in wasi:http (bytecodealliance#13510)
* Enable reflection on component async call stacks This commit adds a few new APIs to the surface area of the `wasmtime` crate as well as reorganizes some internals. Namely: * `StoreContextMut::async_call_stack` - yields an `Iterator` of the call stack of async tasks in the component model to understand the current call graph. * `{Typed,}Func::{start,finish}_call_concurrent` - these new APIs allow splitting apart the previous `call_concurrent` function into discrete steps to learn about the task being created, notably the `GuestTaskId`. The previous `call_concurrent` is reimplemented in terms of these functions. * Methods requiring the `component-model-async` Cargo feature are now under the `concurrent` module in `wasmtime` to cut down on `#[cfg]` required. This is all intended to address the concerns of WebAssembly/WASI#918, WebAssembly/WASI#919, and WebAssembly/WASI#920. This isn't plumbed into wasi-http yet, but that'll come as a * Thread request IDs through `wasi:http` handling This commit uses the previous commit to connect a generic, host-defined, request ID and provide a strong connection to the `GuestTaskId` that's being used to serve that request. This can be used by `wasi:http` handlers to provide a strong correlation between outgoing requests, for example, and incoming requests. * Update expansion tests * Update crates/wasmtime/src/runtime/component/concurrent/func.rs Co-authored-by: Joel Dice <joel.dice@akamai.com> * Fix doc links --------- Co-authored-by: Joel Dice <joel.dice@akamai.com>
1 parent 1f0294d commit 5ed2436

93 files changed

Lines changed: 7866 additions & 4145 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

crates/component-macro/tests/expanded/char.rs

Lines changed: 22 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/component-macro/tests/expanded/char_async.rs

Lines changed: 22 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/component-macro/tests/expanded/char_concurrent.rs

Lines changed: 22 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/component-macro/tests/expanded/char_tracing_async.rs

Lines changed: 22 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)