Query whether an Aio or Aio value remains unresolved. Unlike call_aio, this function does not wait for completion.

unresolved(aio)

Arguments

aio

An Aio (object of class 'sendAio' or 'recvAio'), or Aio value stored in $result, $raw or $data as the case may be.

Value

Logical TRUE or FALSE.

Details

Returns TRUE for unresolved Aios or Aio values, FALSE otherwise. Suitable for use in control flow statements such as while or if.

Note: querying resolution may cause a previously unresolved Aio to resolve.

Examples

s1 <- socket("pair", listen = "inproc://nanonext")
aio <- send_aio(s1, "test", timeout = 100)

while (unresolved(aio)) {
  # do stuff before checking resolution again
  cat("unresolved\n")
  s2 <- socket("pair", dial = "inproc://nanonext")
  Sys.sleep(0.01)
}
#> unresolved

unresolved(aio)
#> [1] FALSE

close(s1)
close(s2)