POE::XS::Loop::Poll - an XS implementation of POE::Loop, using poll(2).


POE-XS-Loop-Poll documentation Contained in the POE-XS-Loop-Poll distribution.

Index


Code Index:

NAME

Top

POE::XS::Loop::Poll - an XS implementation of POE::Loop, using poll(2).

SYNOPSIS

Top

  use POE::Kernel { loop => 'POE::XS::Loop::Poll' };

DESCRIPTION

Top

This class is an implementation of the abstract POE::Loop interface written in C using the poll(2) system call.

Signals are left to POE::Loop::PerlSignals.

SEE ALSO

Top

POE, POE::Kernel, POE::Loop.

BUGS

Top

Relies upon small fd numbers, but then a lot of code does.

Will fail badly if your code uses POE from more than one Perl thread.

poll() on OS X doesn't support ptys, hence POE::XS::Loop::Poll won't work with ptys on OS X.

If you see an error:

  POE::XS::Loop::Poll hasn't been initialized correctly

then the loop hasn't been loaded correctly, in POE <= 1.287 the following:

  # this doesn't work
  use POE qw(XS::Loop::Poll);

will not load the loop correctly, you will need to do:

  use POE::Kernel { loop => 'POE::XS::Loop::Poll' };
  use POE;

LICENSE

Top

POE::XS::Loop::Poll is licensed under the same terms as Perl itself.

AUTHOR

Top

Tony Cook <tonyc@cpan.org>

sub skip_tests { $ENV{POE_EVENT_LOOP} = "POE::XS::Loop::Poll"; $ENV{POE_LOOP_USES_POLL} = 1; return; }


POE-XS-Loop-Poll documentation Contained in the POE-XS-Loop-Poll distribution.
package POE::XS::Loop::Poll;
use strict;
use vars qw(@ISA $VERSION);
BEGIN {
  unless (defined &POE::Kernel::TRACE_CALLS) {
    # we ignore TRACE_DEFAULT, since it's not really standard POE and it's
    # noisy
    *POE::Kernel::TRACE_CALLS = sub () { 0 };
  }
  $VERSION = '1.000';
  eval {
    # try XSLoader first, DynaLoader has annoying baggage
    require XSLoader;
    XSLoader::load('POE::XS::Loop::Poll' => $VERSION);
    1;
  } or do {
    require DynaLoader;
    push @ISA, 'DynaLoader';
    bootstrap POE::XS::Loop::Poll $VERSION;
  }
}

require POE::Loop::PerlSignals;

if ((POE::Kernel::TRACE_FILES() || POE::Kernel::TRACE_EVENTS()) 
    && !tracing_enabled()) {
  print POE::Kernel::TRACE_FILE "<xx> ", __PACKAGE__, " was built without tracing enabled, build with perl Makefile.PL --trace to enable tracing\n";
}

# everything else is XS
1;

__END__