--- AnyEvent/lib/AnyEvent.pm 2008/05/25 23:52:02 1.136 +++ 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,6 +741,13 @@ 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 @@ -752,6 +759,19 @@ $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 = ( [EV:: => AnyEvent::Impl::EV::], [Event:: => AnyEvent::Impl::Event::], @@ -795,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"; @@ -927,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) {