Commit 5b4ef94
[37.0.0] More WASIp3 backports (#11654)
* support non-async `{stream,future}.cancel-{read,write}` (#11625)
* support non-async `{stream,future}.cancel-{read,write}`
During my earlier stream API refactoring, I had forgotten to support or test
synchronous cancellation; this commit does both. In the process, I realized the
future API ought to be updated to support blocking cancellation just like the
stream API, so I made that change as well.
This also adds `{Source,Destination}::reborrow` functions, allowing instances of
those types to be reborrowed, such that they may be passed as parameters but
also used again.
Note that I had to move some functions from `impl ConcurrentState` to `impl
Instance` in order to access the store and suspend the current fiber when
synchronously cancelling.
Signed-off-by: Joel Dice <joel.dice@fermyon.com>
* reduce code duplication
Signed-off-by: Joel Dice <joel.dice@fermyon.com>
---------
Signed-off-by: Joel Dice <joel.dice@fermyon.com>
* support and test synchronous `{stream,future}.cancel-{read,write}` (#11645)
* support and test synchronous `{stream,future}.cancel-{read,write}`
Previously, we only supported async calls to those intrinsics; now we support
blocking, synchronous calls as well.
Signed-off-by: Joel Dice <joel.dice@fermyon.com>
* update future-read.wast test
Signed-off-by: Joel Dice <joel.dice@fermyon.com>
---------
Signed-off-by: Joel Dice <joel.dice@fermyon.com>
* p3-http: finish `wasi:http@0.3` implementation (#11636)
* refactor(p3-http): use trappable errors
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
* feat(p3-http): implement `content-length` handling
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
* refactor(p3-http): remove a few resource utilities
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
* remove unused test import
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
* fix(p3-http): close stream handles on drop
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
* test(p3-http): stream responses back
This is something we've been doing in wasip3, but I forgot to port this
over
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
* doc(p3-http): add missing docs, internalize more, simplify
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
* refactor(p3-http): extract `Body::consume`
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
* refactor(p3-http): clean-up `content-length` error reporting
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
* refactor(p3-http): drop elided lifetime
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
* fix(p3-http): avoid guest body deadlock hazard
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
* refactor(p3-http): add more docs, clean-up
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
* doc(p3-http): add more docs
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
* fix(p3-http): rework result future handling
Most importantly this avoids a race condition between `content-length` error observed by `GuestBody`
and hyper I/O driver
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
* add new imports after rebase
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
* clean-up `poll_consume`
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
* assert content-length `handle` results
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
* relax `content_length` test `handle` assert
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
---------
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
* p3-http: implementation follow-up (#11649)
* p3: refactor future producers/consumers
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
* p3-http: tie lifetime of the spawned task to the bodies
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
* p3-http: improve docs
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
---------
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
* Ignore a wasip3 http test temporarily (#11657)
Filed #11656 to track the eventual resolution.
* don't delete sync-lowered subtasks unless they've exited (#11655)
Previously, we were unconditionally deleting the callee subtask once it returned
a value to a sync-lowered call, but that's only appropriate if the subtask has
exited. Otherwise, it needs to keep running and only be deleted once it
actually exits.
Thanks to Luke for the `sync-streams.wast` test that uncovered this, which I've
copied from the `component-model` repo.
This also makes a couple of debug logging tweaks that proved useful while
investigating the above issue.
Signed-off-by: Joel Dice <joel.dice@fermyon.com>
---------
Signed-off-by: Joel Dice <joel.dice@fermyon.com>
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
Co-authored-by: Joel Dice <joel.dice@fermyon.com>
Co-authored-by: Roman Volosatovs <rvolosatovs@users.noreply.github.com>1 parent e9b656c commit 5b4ef94
File tree
29 files changed
+2826
-1208
lines changed- crates
- misc/component-async-tests
- src
- tests
- scenario
- wit
- test-programs/src/bin
- wasi-http
- src
- p3
- host
- tests/all
- p3
- wasi/src/p3
- filesystem
- sockets/host/types
- wasmtime/src/runtime
- component
- concurrent
- vm/component
- tests/misc_testsuite/component-model-async
29 files changed
+2826
-1208
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| |||
139 | 139 | | |
140 | 140 | | |
141 | 141 | | |
142 | | - | |
143 | | - | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
144 | 153 | | |
145 | 154 | | |
146 | 155 | | |
147 | | - | |
| 156 | + | |
148 | 157 | | |
149 | 158 | | |
150 | 159 | | |
151 | | - | |
| 160 | + | |
152 | 161 | | |
153 | 162 | | |
154 | 163 | | |
155 | | - | |
| 164 | + | |
156 | 165 | | |
157 | 166 | | |
158 | | - | |
159 | | - | |
160 | | - | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
161 | 178 | | |
162 | 179 | | |
0 commit comments