Provided by: liblinux-epoll-perl_0.7-1build1_amd64 bug

NAME

       Linux::Epoll - O(1) multiplexing for Linux

VERSION

       version 0.007

SYNOPSIS

        use Linux::Epoll;

        my $epoll = Linux::Epoll->new();
        $epoll->add($fh, 'in', sub {
            my $events = shift;
            do_something($fh) if $events->{in};
        });
        $epoll->wait while 1;

DESCRIPTION

       Epoll is a multiplexing mechanism that scales up O(1) with number of watched files. Linux::Epoll is a
       callback style epoll module, unlike other epoll modules available on CPAN.

   Types of events
       •   in

           The associated filehandle is availible for reading.

       •   out

           The associated filehandle is availible for writing.

       •   err

           An  error condition has happened on the associated filehandle. "wait" will always wait on this event,
           it is not necessary to set this with "add" or "modify".

       •   prio

           There is urgent data available for reading.

       •   et

           Set edge triggered behavior for the associated filehandle. The default behavior is  level  triggered.
           See you epoll(7) documentation for more information on what this means.

       •   hup

           A hang-up has happened on the associated filehandle. "wait" will always wait on this event, it is not
           necessary to set this with "add" or "modify".

       •   rdhup

           Stream  socket  peer closed the connection, or shut down the writing half of connection. This flag is
           especially useful for writing  simple  code  to  detect  peer  shutdown  when  using  Edge  Triggered
           monitoring.

       •   oneshot

           Sets  the  one-shot  behavior  for  the associated file descriptor. This means that after an event is
           pulled out with "wait" the associated file descriptor is internally disabled and no other events will
           be reported by the epoll interface. The user must call "modify" to rearm the file descriptor  with  a
           new event mask.

METHODS

   new($options = undef)
       Create a new epoll instance. It takes an optional hashref as argument.

   add($fh, $events, $callback)
       Register  the filehandle with the epoll instance and associate events $events and callback $callback with
       it. $events may be either a string (e.g. 'in') or an arrayref (e.g. "[qw/in out hup/]"). If a  filehandle
       already  exists  in  the  set  and  "add"  is called in non-void context, it returns undef and sets $! to
       "EEXIST"; if the file can't be waited upon it sets $! to "EPERM" instead. On all other  error  conditions
       an  exception  is  thrown.  The  callback  gets a single argument, a hashref whose keys are the triggered
       events.

   modify($fh, $events, $callback)
       Change the events and callback associated on this epoll instance with filehandle $fh. The arguments  work
       the  same  as  with  "add".  If  a filehandle doesn't exist in the set and "modify" is called in non-void
       context, it returns undef and sets $! to "ENOENT". On all other error conditions an exception is thrown.

   delete($fh)
       Remove a filehandle from the epoll instance. If a filehandle doesn't exist in the  set  and  "delete"  is
       called  in  non-void  context, it returns undef and sets $! to "ENOENT". On all other error conditions an
       exception is thrown.

   wait($number = 1, $timeout = undef, $sigmask = undef)
       Wait for up to $number events, where $number must be greater than zero.  $timeout  is  the  maximal  time
       "wait"  will wait for events in fractional seconds. If it is undefined it may wait indefinitely. $sigmask
       is the signal mask during the call. If  it  is  not  defined  the  signal  mask  will  be  untouched.  If
       interrupted  by  a  signal  it  returns  undef/an  empty  list and sets $! to "EINTR". On all other error
       conditions an exception is thrown.

SEE ALSO

       •   IO::Epoll

       •   Sys::Syscall

       •   IO::Poll

AUTHOR

       Leon Timmermans <leont@cpan.org>

COPYRIGHT AND LICENSE

       This software is copyright (c) 2010 by Leon Timmermans.

       This is free software; you can redistribute it and/or modify it under  the  same  terms  as  the  Perl  5
       programming language system itself.

perl v5.18.1                                       2013-10-21                                  Linux::Epoll(3pm)