use fastly_shared::FastlyStatus;
use fastly_sys::fastly_async_io;
pub(crate) fn is_ready(handle: u32) -> Result<bool, FastlyStatus> {
let mut ready_out = 0_u32;
unsafe { fastly_async_io::is_ready(handle, &mut ready_out) }.result()?;
Ok(ready_out != 0)
}
pub(crate) fn select(handles: &[u32]) -> Result<usize, FastlyStatus> {
let mut done_index = 0_u32;
let status = unsafe {
fastly_async_io::select(
handles.as_ptr(),
handles.len(),
0, &mut done_index,
)
};
status.result()?;
Ok(done_index as usize)
}