GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  IO::ASYNC::LOOP::SELECT (3)

.ds Aq ’

NAME

"IO::Async::Loop::Select" - use IO::Async with "select(2)"

CONTENTS

SYNOPSIS

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.



 use IO::Async::Loop::Select;

 my $loop = IO::Async::Loop::Select->new;

 $loop->add( ... );

 while(1) {
    my ( $rvec, $wvec, $evec ) = () x 3;
    my $timeout;

    $loop->pre_select( \$rvec, \$wvec, \$evec, \$timeout );
    ...
    my $ret = select( $rvec, $wvec, $evec, $timeout );
    ...
    $loop->post_select( $rvec, $evec, $wvec );
 }



DESCRIPTION

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.

CONSTRUCTOR

    new



   $loop = IO::Async::Loop::Select->new



This function returns a new instance of a IO::Async::Loop::Select object. It takes no special arguments.

METHODS

    pre_select



   $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.
\$readvec
\$writevec
\$exceptvec Scalar references to the reading, writing and exception bitvectors
\$timeout Scalar reference to the timeout value

    post_select



   $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.
$readvec
$writevec
$exceptvec Scalars containing the read-ready, write-ready and exception bitvectors

    loop_once



   $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.

SEE ALSO

o IO::Select - OO interface to select system call

AUTHOR

Paul Evans <leonerd@leonerd.org.uk>
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 IO::ASYNC::LOOP::SELECT (3) 2015-12-15

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.