=encoding utf8

=head1 NAME

POSIX::1003::Events - POSIX for the file-system

=head1 SYNOPSIS

  use POSIX::1003::Events;

=head1 DESCRIPTION

=head1 FUNCTIONS

=head2 Standard POSIX

=over 4

=item B<FD_CLR>($fd, $set)

Remove the file descriptor $fd from the $set. If $fd is not a member of
this set, there shall be no effect on the set, nor will an error be
returned.

=item B<FD_ISSET>($fd, $set)

Returns true if the file descriptor $fd is a member of the $set

=item B<FD_SET>($fd, $set)

Add the file descriptor $fd to the $set
If the file descriptor $fd is already in this set, there
is no effect on the set, nor will an error be returned.

=item B<FD_ZERO>($set)

Clear the set

=item B<poll>( HASH, [$timeout] )

If $timeout is not defined, the poll will wait until something
happend.  When C<undef> is returned, then there is an error.
With an empy HASH returned, then the poll timed out.  Otherwise,
the returned HASH contains the FDs where something happened.

=item B<select>( $rbits, $wbits, $ebits, [$timeout] )

Perl core contains two functions named C<select>.  The second is the
one we need here.  Without $timeout, the select will wait until an event
emerges (or an interrupt).

In the example below, C<$rin> is a bit-set indicating on which
file-descriptors should be listed for read events (I<data available>)
and C<$rout> is a sub-set of that. The bit-sets can be manipulated
with the C<FD_*> functions also exported by this module.

  my ($nfound, $timeleft) =
    select($rout=$rin, $wout=$win, $eout=$ein, $timeout);

  my $nfound = select($rout=$rin, $wout=$win, $eout=$ein);

The C<select> interface is inefficient when used with many filehandles.
You can better use L<poll()|POSIX::1003::Events/"Standard POSIX">.

=back

=head2 Additional

=over 4

=item B<events_names>()

Returns a list with all known names, unsorted.

=back

=head1 CONSTANTS

The following constants where detected on your system when the
module got installed.  The second column shows the value which
where returned at that time.

=for comment
#TABLE_POLL_START

   If you install the module, the table will be filled-in here

=for comment
#TABLE_POLL_END

=head1 SEE ALSO

This module is part of POSIX-1003 distribution version 1.02,
built on November 10, 2020. Website: F<http://perl.overmeer.net/CPAN>.  The code is based on L<POSIX>, which
is released with Perl itself.  See also L<POSIX::Util> for
additional functionality.

=head1 COPYRIGHTS

Copyrights 2011-2020 on the perl code and the related documentation
 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://dev.perl.org/licenses/>

