README
A poll API intended to let users wait for I/O events on multiple handles at once.

#
Pollable

pub(all) type Pollable Int derive(Eq, Show)

pollable represents a single I/O event which may be ready, or not.

#
Pollable::block

fn Pollable::block(self : Pollable) -> Unit

block returns immediately if the pollable is ready, and otherwise blocks until ready.

This function is equivalent to calling poll.poll on a list containing only this pollable.

#
Pollable::drop

fn Pollable::drop(self : Pollable) -> Unit

Drops a resource handle.

#
Pollable::inner

#deprecated("Use `struct T(A)` to declare a newtype and use `.0` access the underlying type instead.")
fn Pollable::inner(self : Pollable) -> Int
Convert newtype to its underlying type, automatically derived.

#
Pollable::ready

fn Pollable::ready(self : Pollable) -> Bool

Return the readiness of a pollable. This function never blocks.

Returns true when the pollable is ready, and false otherwise.

#
poll

fn poll(in_ : Array[Pollable]) -> FixedArray[UInt]

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<u32> 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.

Source Files

Powered by MoonBit

Site sourceReport issuePackagesBuild queueSkillsStatistics

© 2026 mooncakes.io