Manual Reference Pages - IO::ASYNC::LOOP::SELECT (3)
"IO::Async::Loop::Select" - use IO::Async with "select(2)"
Normally an instance of this class would not be directly constructed by a
program. It may however, be useful for runinng IO::Async with an existing
program already using a select call.
my $loop = IO::Async::Loop::Select->new;
$loop->add( ... );
my ( $rvec, $wvec, $evec ) = () x 3;
$loop->pre_select( \$rvec, \$wvec, \$evec, \$timeout );
my $ret = select( $rvec, $wvec, $evec, $timeout );
$loop->post_select( $rvec, $evec, $wvec );
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.
$loop = IO::Async::Loop::Select->new
This function returns a new instance of a IO::Async::Loop::Select object.
It takes no special arguments.
$loop->pre_select( \$readvec, \$writevec, \$exceptvec, \$timeout )
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.
Scalar references to the reading, writing and exception bitvectors
Scalar reference to the timeout value
$loop->post_select( $readvec, $writevec, $exceptvec )
This method checks the returned bitvectors from a select call, and calls
any of the callbacks that are appropriate.
Scalars containing the read-ready, write-ready and exception bitvectors
$count = $loop->loop_once( $timeout )
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.
Paul Evans <email@example.com>
|perl v5.20.3 ||IO::ASYNC::LOOP::SELECT (3) ||2015-12-15 |
Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.