You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
wasip3: Finish nonblocking I/O implementation for TCP (#782)
This commit fills out the final bits of nonblocking I/O for TCP sockets.
This necessitates an implementation of nonblocking I/O for `stream<u8>`
on both the reading and the writing side of things. Additionally things
like TCP accepts now work, too. All tests are now passing on the WASIp3
target and the `FAILP3` directive is now removed since it's no longer
necessary.
The internals of the implementation here are pretty gnarly. This is due
to the need to bridge the readiness-based-model of `poll` with the
completion-based model of the component model. This implementation
contains optimizations for 0-length reads/writes to use those to signal
readiness if the host supports that, but this falls back to
internally-buffered reads/writes if that is not supported.
This should resolve all remaining TODOs for WASIp3 that I know of at
least in wasi-libc, so after this it'd be switching to bug-finding mode
and handling bug reports as projects are compiled with wasip3.
---------
Co-authored-by: Joel Dice <joel.dice@akamai.com>
0 commit comments