--- AnyEvent/lib/AnyEvent.pm 2008/05/25 04:49:01 1.135 +++ AnyEvent/lib/AnyEvent.pm 2008/05/26 06:04:38 1.139 @@ -733,7 +733,7 @@ use Carp; -our $VERSION = '4.03'; +our $VERSION = '4.04'; our $MODEL; our $AUTOLOAD; @@ -741,14 +741,35 @@ 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) +our %PROTOCOL; # (ipv4|ipv6) => (1|2), higher numbers are preferred { my $idx; $PROTOCOL{$_} = ++$idx - for split /\s*,\s*/, $ENV{PERL_ANYEVENT_PROTOCOLS} || "ipv4,ipv6"; + for reverse split /\s*,\s*/, + $ENV{PERL_ANYEVENT_PROTOCOLS} || "ipv4,ipv6"; +} + +sub import { + shift; + return unless @_; + + my $pkg = caller; + + no strict 'refs'; + + for (@_) { + *{"$pkg\::WIN32"} = *WIN32 if $_ eq "WIN32"; + } } my @models = ( @@ -794,6 +815,7 @@ sub detect() { unless ($MODEL) { no strict 'refs'; + local $SIG{__DIE__}; if ($ENV{PERL_ANYEVENT_MODEL} =~ /^([a-zA-Z]+)$/) { my $model = "AnyEvent::Impl::$1"; @@ -926,7 +948,7 @@ $PID_CB{$pid}{$arg{cb}} = $arg{cb}; unless ($WNOHANG) { - $WNOHANG = eval { require POSIX; &POSIX::WNOHANG } || 1; + $WNOHANG = eval { local $SIG{__DIE__}; require POSIX; &POSIX::WNOHANG } || 1; } unless ($CHLD_W) {