The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
=encoding utf8

=head1 NAME

IOMux::Poll - simplify use of poll()

=head1 INHERITANCE

 IOMux::Poll
   is a IOMux

=head1 SYNOPSIS

  use IOMux::Poll;

  my $mux    = IOMux::Poll->new;
  my $server = IOMux::Service::TCP->new(...);
  $mux->add($server);
  $mux->loop;

=head1 DESCRIPTION

Multiplexer based on the C<poll()> system call, defined by POSIX.

The C<poll> has less administration overhead than the C<select> call
(implemented via L<IOMux::Select|IOMux::Select>) because it avoids the need to play
with bit-vectors to see which file handles got activated. However,
C<poll> is not supported on all platforms.

Extends L<"DESCRIPTION" in IOMux|IOMux/"DESCRIPTION">.
 
=head1 METHODS

Extends L<"METHODS" in IOMux|IOMux/"METHODS">.
 
=head2 Constructors

Extends L<"Constructors" in IOMux|IOMux/"Constructors">.
 
=over 4

=item IOMux::Poll-E<gt>B<new>(%options)

Inherited, see L<IOMux/"Constructors">

=back

=head2 Accessors

Extends L<"Accessors" in IOMux|IOMux/"Accessors">.
 
=over 4

=item $obj-E<gt>B<poller>()

The internal IO::Poll object.

=back

=head2 User interface

Extends L<"User interface" in IOMux|IOMux/"User interface">.
 
=over 4

=item $obj-E<gt>B<add>($handler|$bundle)

Inherited, see L<IOMux/"User interface">

=item $obj-E<gt>B<endLoop>(BOOLEAN)

Inherited, see L<IOMux/"User interface">

=item $obj-E<gt>B<loop>( [$heartbeat] )

Inherited, see L<IOMux/"User interface">

=item $obj-E<gt>B<open>($mode, $params)

Inherited, see L<IOMux/"User interface">

=back

=head2 For internal use

Extends L<"For internal use" in IOMux|IOMux/"For internal use">.
 
=over 4

=item $obj-E<gt>B<changeTimeout>($fileno, $oldtimeout, $newtimeout)

Inherited, see L<IOMux/"For internal use">

=item $obj-E<gt>B<fdset>($fileno, $state, $read, $write, $except)

Inherited, see L<IOMux/"For internal use">

=item $obj-E<gt>B<handler>( $fileno, [$handler] )

Inherited, see L<IOMux/"For internal use">

=item $obj-E<gt>B<handlers>()

Inherited, see L<IOMux/"For internal use">

=item $obj-E<gt>B<remove>($fileno)

Inherited, see L<IOMux/"For internal use">

=back

=head1 DETAILS

Extends L<"DETAILS" in IOMux|IOMux/"DETAILS">.
 
=head2 Installation

Extends L<"Installation" in IOMux|IOMux/"Installation">.
 
=head2 Event managers

Extends L<"Event managers" in IOMux|IOMux/"Event managers">.
 
=head2 File handles

Extends L<"File handles" in IOMux|IOMux/"File handles">.
 
=head2 Implementation limitations

Poll is only available on UNIX.  Windows Vista has added a WSAPoll with
comparible functionality (probably), but afaik there is no binary wrapper
available for perl yet.

=head1 SEE ALSO

This module is part of IOMux distribution version 1.00,
built on November 11, 2015. Website: F<http://perl.overmeer.net/>
All modules in this suite:
L</Any::Daemon>,
L</IOMux>, and
L</IOMux::HTTP>.

Please post questions or ideas to F<perl@overmeer.net>

=head1 LICENSE

Copyrights 2011-2015 by [Mark Overmeer]. For other contributors see ChangeLog.

This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See F<http://www.perl.com/perl/misc/Artistic.html>