=head1 NAME AnyEvent::Impl::Perl - AnyEvent adaptor for AnyEvent's pure perl AnyEvent::Loop =head1 SYNOPSIS use AnyEvent; use AnyEvent::Loop; # this module gets loaded automatically as required =head1 DESCRIPTION This module provides transparent support for AnyEvent in case no other event loop could be found or loaded. If you want to use this module instead of autoloading another event loop you can simply load L before creating the first watcher. Naturally, it supports all features of AnyEvent. See L for more details on performance characteristics. =cut package AnyEvent::Impl::Perl; use AnyEvent (); BEGIN { AnyEvent::common_sense } use AnyEvent::Loop; our $VERSION = $AnyEvent::VERSION; # time() is provided via AnyEvent::Base *AE::now = \&AnyEvent::Loop::now; *AE::now_update = \&AnyEvent::Loop::now_update; *AE::io = \&AnyEvent::Loop::io; *AE::timer = \&AnyEvent::Loop::timer; *AE::idle = \&AnyEvent::Loop::idle; *_poll = \&AnyEvent::Loop::one_event; *loop = \&AnyEvent::Loop::run; # compatibility with AnyEvent < 6.0 *now_update = \&AnyEvent::Loop::now_update; sub now { $AnyEvent::Loop::NOW } sub AnyEvent::CondVar::Base::_wait { AnyEvent::Loop::one_event until exists $_[0]{_ae_sent}; } sub io { my (undef, %arg) = @_; AnyEvent::Loop::io $arg{fh}, $arg{poll} eq "w", $arg{cb} } sub timer { my (undef, %arg) = @_; AnyEvent::Loop::timer $arg{after}, $arg{interval}, $arg{cb} } sub idle { my (undef, %arg) = @_; AnyEvent::Loop::idle $arg{cb} } =head1 SEE ALSO L. =head1 AUTHOR Marc Lehmann http://anyevent.schmorp.de =cut 1