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

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

page 10 of 18




      # check for already loaded models
      unless ($MODEL) {
         for (@REGISTRY, @models) {
            my ($package, $model) = @$_;
            if (${"$package\::VERSION"} > 0) {
               if (eval "require $model") {
                  $MODEL = $model;
                  warn "AnyEvent: autodetected model '$model', using it.\n" if $verbose > 1;
                  last;
               }
            }
         }

         unless ($MODEL) {
            # try to load a model

            for (@REGISTRY, @models) {
               my ($package, $model) = @$_;
               if (eval "require $package"
                   and ${"$package\::VERSION"} > 0
                   and eval "require $model") {
                  $MODEL = $model;
                  warn "AnyEvent: autoprobed model '$model', using it.\n" if $verbose > 1;
                  last;
               }
            }

            $MODEL
              or die "No event module selected for AnyEvent and autodetect failed. Install any one of these modules: EV, 
Event or Glib.";
         }
      }

      unshift @ISA, $MODEL;
      push @{"$MODEL\::ISA"}, "AnyEvent::Base";

      (shift @post_detect)->() while @post_detect;
   }

   $MODEL
}

sub AUTOLOAD {
   (my $func = $AUTOLOAD) =~ s/.*://;

   $method{$func}
      or croak "$func: not a valid method for AnyEvent objects";

   detect unless $MODEL;

   my $class = shift;
   $class->$func (@_);
}

package AnyEvent::Base;

# default implementation for now and time

use Time::HiRes ();

sub time { Time::HiRes::time }
sub now  { Time::HiRes::time }

# default implementation for ->condvar

sub condvar {
   bless { @_ == 3 ? (_ae_cb => $_[2]) : () }, AnyEvent::CondVar::
}

# default implementation for ->signal

our %SIG_CB;

sub signal {
   my (undef, %arg) = @_;

   my $signal = uc $arg{signal}
      or Carp::croak "required option 'signal' is missing";

   $SIG_CB{$signal}{$arg{cb}} = $arg{cb};
   $SIG{$signal} ||= sub {
      $_->() for values %{ $SIG_CB{$signal} || {} };
   };

   bless [$signal, $arg{cb}], "AnyEvent::Base::Signal"
}

sub AnyEvent::Base::Signal::DESTROY {
   my ($signal, $cb) = @{$_[0]};

   delete $SIG_CB{$signal}{$cb};

   $SIG{$signal} = 'DEFAULT' unless keys %{ $SIG_CB{$signal} };
}

# default implementation for ->child

our %PID_CB;
our $CHLD_W;
our $CHLD_DELAY_W;
=10=

1.4|5|6|7|8|9| < PREV = PAGE 10 = NEXT > |11|12|13|14|15|16.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.00705314 wallclock secs ( 0.01 usr + 0.00 sys = 0.01 CPU)