AnyEvent-Worker
view release on metacpan or search on metacpan
inc/Module/AutoInstall.pm view on Meta::CPAN
173174175176177178179180181182183184185186187188189190191192193
unshift
@$modules
,
$arg
;
$arg
= 0;
}
# XXX: check for conflicts and uninstalls(!) them.
my
$cur
= _load(
$mod
);
if
(_version_cmp (
$cur
,
$arg
) >= 0)
{
"loaded. ($cur"
. (
$arg
?
" >= $arg"
:
''
) .
")\n"
;
push
@Existing
,
$mod
=>
$arg
;
$DisabledTests
{
$_
} = 1
for
map
{
glob
(
$_
) }
@skiptests
;
}
else
{
if
(not
defined
$cur
)
# indeed missing
{
"missing."
. (
$arg
?
" (would need $arg)"
:
''
) .
"\n"
;
}
else
{
# no need to check $arg as _version_cmp ($cur, undef) would satisfy >= above
"too old. ($cur < $arg)\n"
;
inc/Module/AutoInstall.pm view on Meta::CPAN
211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
qq{==> Auto-install the }
. (
@required
/ 2 )
. (
$mandatory
?
' mandatory'
:
' optional'
)
.
qq{ module(s) from CPAN?}
,
$default
?
'y'
:
'n'
,
) =~ /^[Yy]/
)
)
{
push
(
@Missing
,
@required
);
$DisabledTests
{
$_
} = 1
for
map
{
glob
(
$_
) }
@skiptests
;
}
elsif
( !
$SkipInstall
and
$default
and
$mandatory
and
_prompt(
qq{==> The module(s) are mandatory! Really skip?}
,
'n'
, )
=~ /^[Nn]/ )
{
push
(
@Missing
,
@required
);
$DisabledTests
{
$_
} = 1
for
map
{
glob
(
$_
) }
@skiptests
;
}
else
{
$DisabledTests
{
$_
} = 1
for
map
{
glob
(
$_
) }
@tests
;
}
}
if
(
@Missing
and not(
$CheckOnly
or
$UnderCPAN
) ) {
"*** Dependencies will be installed the next time you type '$Config::Config{make}'.\n"
;
# make an educated guess of whether we'll need root permission.
" (You may need to do that as the 'root' user.)\n"
inc/Module/AutoInstall.pm view on Meta::CPAN
743744745746747748749750751752753754755756757758759760761762763
my
$manifest
= ExtUtils::Manifest::maniread(
'MANIFEST'
);
$args
{EXE_FILES} =
[
grep
{
exists
$manifest
->{
$_
} } @{
$args
{EXE_FILES} } ];
}
$args
{test}{TESTS} ||=
't/*.t'
;
$args
{test}{TESTS} =
join
(
' '
,
grep
{ !
exists
(
$DisabledTests
{
$_
} ) }
map
{
glob
(
$_
) }
split
( /\s+/,
$args
{test}{TESTS} ) );
my
$missing
=
join
(
','
,
@Missing
);
my
$config
=
join
(
','
, UNIVERSAL::isa(
$Config
,
'HASH'
) ? %{
$Config
} : @{
$Config
} )
if
$Config
;
$PostambleActions
= (
(
$missing
and not
$UnderCPAN
)
?
"\$(PERL) $0 --config=$config --installdeps=$missing"
:
"\$(NOECHO) \$(NOOP)"
inc/Module/Install.pm view on Meta::CPAN
202203204205206207208209210211212213214215216217218219220221222
);
}
my
@exts
= @{
$self
->{extensions}};
unless
(
@exts
) {
@exts
=
$self
->{admin}->load_all_extensions;
}
my
%seen
;
foreach
my
$obj
(
@exts
) {
while
(
my
(
$method
,
$glob
) =
each
%{
ref
(
$obj
) .
'::'
}) {
next
unless
$obj
->can(
$method
);
next
if
$method
=~ /^_/;
next
if
$method
eq
uc
(
$method
);
$seen
{
$method
}++;
}
}
my
$who
=
$self
->_caller;
foreach
my
$name
(
sort
keys
%seen
) {
local
$^W;
lib/AnyEvent/Worker.pm view on Meta::CPAN
313314315316317318319320321322323324325326327328329330331332333}
our
%KIDW
;
our
%TERM
;
sub
kill_child {
my
$self
=
shift
;
my
$child_pid
=
delete
$self
->{child_pid};
my
$GD
= 0;
{
local
$SIG
{__WARN__} =
sub
{
$GD
= 1
if
$_
[0] =~ / during global destruction\.\s*$/ };
warn
'test'
;
}
#print STDERR "killing $child_pid / $GD\n";
if
(
$child_pid
) {
# send SIGKILL in two seconds
$TERM
{
$child_pid
}++;
kill
0
=>
$child_pid
and
kill
TERM
=>
$child_pid
or $!{ESRCH} or
warn
"kill $child_pid: $!"
;
return
if
$GD
;
# MAYBE: kill timer
lib/AnyEvent/Worker.pm view on Meta::CPAN
352353354355356357358359360361362363364365366367368369370371372
#undef $murder_timer;
},
);
close
$self
->{fh};
}
}
sub
END {
my
$GD
= 0;
{
local
$SIG
{__WARN__} =
sub
{
$GD
= 1
if
$_
[0] =~ / during global destruction\.\s*$/ };
warn
'test'
;
}
#print STDERR "END $!/$? GD=$GD\n";
for
(
keys
%TERM
) {
delete
$KIDW
{
$_
};
#print STDERR "END kill $_\n";
kill
0
=>
$_
and
do
{
kill
KILL
=>
$_
or
warn
"kill $_ failed: $!"
;
#print STDERR "END waitpid $_\n";
my
$wp
=
waitpid
$_
,0;
( run in 0.256 second using v1.01-cache-2.11-cpan-95122f20152 )