Skip to contents

collect_aio collects the data of an Aio or list of Aios, waiting for resolution if still in progress.

collect_aio_ is a variant that allows user interrupts, suitable for interactive use.

Usage

collect_aio(x)

collect_aio_(x)

Arguments

x

an Aio or list of Aios (objects of class ‘sendAio’, ‘recvAio’ or ‘ncurlAio’).

Value

Depending on the type of ‘x’ supplied, an object or list of objects (the same length as ‘x’, preserving names).

Details

This function will wait for the asynchronous operation(s) to complete if still in progress (blocking).

Using x[] on an Aio x is equivalent to the user-interruptible collect_aio_(x).

Examples

s1 <- socket("pair", listen = "inproc://nanonext")
s2 <- socket("pair", dial = "inproc://nanonext")

res <- send_aio(s1, data.frame(a = 1, b = 2), timeout = 100)
collect_aio(res)
#> [1] 0

msg <- recv_aio(s2, timeout = 100)
collect_aio_(msg)
#>   a b
#> 1 1 2

msg[]
#>   a b
#> 1 1 2

close(s1)
close(s2)