This issue is borne out of discussion on bytecodealliance/wasmtime#13212 where this first arose within Wasmtime. Specifically it's not clear at this time what should happen in various situations related to a thread being blocked on stream/future read/write and then doing something else, for example:
- If the stream/future was in a preexisting waitable-set, and then an event happens, where does the event go?
- If the read/write is cancelled, what happens?
- If the stream/future is added to a waitable set and an event happens, where does it go?
Overall this is the motivation for gating these operations in the upcoming WASIp3 release since there's no known usage of these variants, but regardless I wanted to file this to track clarifying/documenting these interactions.
This issue is borne out of discussion on bytecodealliance/wasmtime#13212 where this first arose within Wasmtime. Specifically it's not clear at this time what should happen in various situations related to a thread being blocked on stream/future read/write and then doing something else, for example:
Overall this is the motivation for gating these operations in the upcoming WASIp3 release since there's no known usage of these variants, but regardless I wanted to file this to track clarifying/documenting these interactions.