Skip to contents

Rho tasks represent one eventual value, while Rho streams represent an asynchronous sequence of typed stream items. Effectful callers compose tasks with rho_then() or coroutines and block only at rho_await().

Details

rho_new_state() and the concrete adapter task classes are exported for packages implementing new async backends. Polling actions return one of the typed RhoPollDecision subclasses; timing remains inside rho.async. rho_serial_queue() orders asynchronous actions without blocking the event loop. Cancelling a queued task removes only that entry; cancelling active work propagates to the task returned by its action.