PROXY  WHOIS  RQUOTE  TEXTS  SOFT  FOREX  BBOARD
 Music  Philosophy  Code  Literature  Russian

= ROOT|Technical|Code_Examples|Perl|site_perl|AnyEvent.pm =

page 9 of 18



=item L<AnyEvent::BDB>, L<BDB>

Truly asynchronous Berkeley DB access. AnyEvent::AIO transparently fuses
IO::AIO and AnyEvent together.

=item L<IO::Lambda>

The lambda approach to I/O - don't ask, look there. Can use AnyEvent.

=back

=cut

package AnyEvent;

no warnings;
use strict;

use Carp;

our $VERSION = 4.152;
our $MODEL;

our $AUTOLOAD;
our @ISA;

our @REGISTRY;

our $WIN32;

BEGIN {
   my $win32 = ! ! ($^O =~ /mswin32/i);
   eval "sub WIN32(){ $win32 }";
}

our $verbose = $ENV{PERL_ANYEVENT_VERBOSE}*1;

our %PROTOCOL; # (ipv4|ipv6) => (1|2), higher numbers are preferred

{
   my $idx;
   $PROTOCOL{$_} = ++$idx
      for reverse split /\s*,\s*/,
             $ENV{PERL_ANYEVENT_PROTOCOLS} || "ipv4,ipv6";
}

my @models = (
   [EV::                   => AnyEvent::Impl::EV::],
   [Event::                => AnyEvent::Impl::Event::],
   [AnyEvent::Impl::Perl:: => AnyEvent::Impl::Perl::],
   # everything below here will not be autoprobed
   # as the pureperl backend should work everywhere
   # and is usually faster
   [Tk::                   => AnyEvent::Impl::Tk::],       # crashes with many handles
   [Glib::                 => AnyEvent::Impl::Glib::],     # becomes extremely slow with many watchers
   [Event::Lib::           => AnyEvent::Impl::EventLib::], # too buggy
   [Qt::                   => AnyEvent::Impl::Qt::],       # requires special main program
   [POE::Kernel::          => AnyEvent::Impl::POE::],      # lasciate ogni speranza
   [Wx::                   => AnyEvent::Impl::POE::],
   [Prima::                => AnyEvent::Impl::POE::],
);

our %method = map +($_ => 1), qw(io timer time now signal child condvar one_event DESTROY);

our @post_detect;

sub post_detect(&) {
   my ($cb) = @_;

   if ($MODEL) {
      $cb->();

      1
   } else {
      push @post_detect, $cb;

      defined wantarray
         ? bless \$cb, "AnyEvent::Util::PostDetect"
         : ()
   }
}

sub AnyEvent::Util::PostDetect::DESTROY {
   @post_detect = grep $_ != ${$_[0]}, @post_detect;
}

sub detect() {
   unless ($MODEL) {
      no strict 'refs';
      local $SIG{__DIE__};

      if ($ENV{PERL_ANYEVENT_MODEL} =~ /^([a-zA-Z]+)$/) {
         my $model = "AnyEvent::Impl::$1";
         if (eval "require $model") {
            $MODEL = $model;
            warn "AnyEvent: loaded model '$model' (forced by \$PERL_ANYEVENT_MODEL), using it.\n" if $verbose > 1;

         } else {
            warn "AnyEvent: unable to load model '$model' (from \$PERL_ANYEVENT_MODEL):\n$@" if $verbose;
         }
      }
=9=

1|2|3|4|5|6|7|8| < PREV = PAGE 9 = NEXT > |10|11|12|13|14|15|16|17|18

UP TO ROOT | UP TO DIR | TO FIRST PAGE

Google
 


E-mail Facebook Google Digg del.icio.us BlinkList Fark Furl Ma.gnolia Netscape NewsVine Reddit Slashdot Spurl StumbleUpon Technorati YahooMyWeb LiveJournal Blogmarks TwitThis Live News2.ru BobrDobr.ru Memori.ru MoeMesto.ru

0.00661898 wallclock secs ( 0.01 usr + 0.00 sys = 0.01 CPU)