Mojo-Run
view release on metacpan or search on metacpan
lib/Mojo/Run.pm view on Meta::CPAN
$self->error('');
if ($self->max_forks > 0 && $self->num_forks >= $self->max_forks) {
$self->error("Unable to spawn another subprocess: "
."Limit of " . $self->max_forks . " concurrently spawned process(es) is reached."
);
return 0;
}
# normalize and validate run parameters...
my $proc = $self->_getRunStruct(\%opt);
return 0 unless $self->_validateRunStruct($proc);
$self->log->debug("Spawning command "
."timeout: "
.($proc->{exec_timeout} > 0 ? sprintf("%-.3f seconds]", $proc->{exec_timeout}) : "none")
." : [$proc->{cmd}]"
);
my ($stdout_p, $stdout_c) = portable_socketpair;
my ($stderr_p, $stderr_c) = portable_socketpair;
my ($stdres_p, $stdres_c) = portable_socketpair;
lib/Mojo/Run.pm view on Meta::CPAN
hdr_stdres => undef,
};
# apply user defined vars...
$s->{$_} = $opt->{$_}
for grep { exists $s->{$_} } keys %$opt;
return $s;
}
sub _validateRunStruct {
my ($self, $s) = @_;
# command?
$self->error('Undefined command.') and return
unless defined $s->{cmd};
# check command...
my $cmd_ref = ref $s->{cmd};
$self->error('Zero-length command.') and return
if $cmd_ref eq '' && length $s->{cmd} == 0;
( run in 0.271 second using v1.01-cache-2.11-cpan-0d8aa00de5b )