This subclass of IO::Async::Loop uses the select(2) syscall to perform read-ready and write-ready tests.

To integrate with an existing select-based event loop, a pair of methods pre_select and post_select can be called immediately before and after a select call. The relevant bits in the read-ready, write-ready and exceptional-state bitvectors are set by the pre_select method, and tested by the post_select method to pick which event callbacks to invoke.

This method prepares the bitvectors for a select call, setting the bits that the Loop is interested in. It will also adjust the $timeout value if appropriate, reducing it if the next event timeout the Loop requires is sooner than the current value.

This method calls the pre_select method to prepare the bitvectors for a select syscall, performs it, then calls post_select to process the result. It returns the total number of callbacks invoked by the post_select method, or undef if the underlying select(2) syscall returned an error.