IO::Async::Loop::IO_Ppoll - a Loop using an IO::Ppoll object
IO::Ppoll
use IO::Async::Loop::IO_Ppoll; my $loop = IO::Async::Loop::IO_Ppoll->new(); $loop->add( ... ); $loop->add( IO::Async::Signal->new( name =< 'HUP', on_receipt => sub { ... }, ) ); $loop->loop_forever();
This subclass of IO::Async::Loop::IO_Poll uses an IO::Ppoll object instead of a IO::Poll to perform read-ready and write-ready tests so that they can be mixed with signal handling.
IO::Async::Loop::IO_Poll
IO::Poll
The ppoll() system call atomically switches the process's signal mask, performs a wait exactly as poll() would, then switches it back. This allows a process to block the signals it cares about, but switch in an empty signal mask during the poll, allowing it to handle file IO and signals concurrently.
ppoll()
poll()
This function returns a new instance of a IO::Async::Loop::IO_Ppoll object. It takes the following named arguments:
IO::Async::Loop::IO_Ppoll
poll
The IO::Ppoll object to use for notification. Optional; if a value is not given, a new IO::Ppoll object will be constructed.
As this is a subclass of IO::Async::Loop::IO_Poll, all of its methods are inherited. Expect where noted below, all of the class's methods behave identically to IO::Async::Loop::IO_Poll.
This method calls the poll() method on the stored IO::Ppoll object, passing in the value of $timeout, and processes the results of that call. It returns the total number of IO::Async::Notifier callbacks invoked, or undef if the underlying poll() method returned an error. If the poll() was interrupted by a signal, then 0 is returned instead.
$timeout
IO::Async::Notifier
undef
IO::Ppoll - Object interface to Linux's ppoll() call
IO::Async::Loop::IO_Poll - a set using an IO::Poll object
Paul Evans <leonerd@leonerd.org.uk>
To install IO::Async::Loop::IO_Ppoll, copy and paste the appropriate command in to your terminal.
cpanm
cpanm IO::Async::Loop::IO_Ppoll
CPAN shell
perl -MCPAN -e shell install IO::Async::Loop::IO_Ppoll
For more information on module installation, please visit the detailed CPAN module installation guide.