/// A poll API intended to let users wait for I/O events on multiple handles /// at once. interface poll { /// A "pollable" handle. resource pollable; /// Poll for completion on a set of pollables. /// /// This function takes a list of pollables, which identify I/O sources of /// interest, and waits until one or more of the events is ready for I/O. /// /// The result `list` contains one or more indices of handles in the /// argument list that is ready for I/O. /// /// If the list contains more elements than can be indexed with a `u32` /// value, this function traps. /// /// A timeout can be implemented by adding a pollable from the /// wasi-clocks API to the list. /// /// This function does not return a `result`; polling in itself does not /// do any I/O so it doesn't fail. If any of the I/O sources identified by /// the pollables has an error, it is indicated by marking the source as /// being reaedy for I/O. poll-list: func(in: list>) -> list; /// Poll for completion on a single pollable. /// /// This function is similar to `poll-list`, but operates on only a single /// pollable. When it returns, the handle is ready for I/O. poll-one: func(in: borrow); }