AnyEvent-Fork
view release on metacpan or search on metacpan
object for further manipulation.
Unlike the C<new> method, this method I<always> spawns a new perl process
(except in some cases, see L<AnyEvent::Fork::Early> for details). This
reduces the amount of memory sharing that is possible, and is also slower.
You should use C<new> whenever possible, except when having a template
process around is unacceptable.
The path to the perl interpreter is divined using various methods - first
C<$^X> is investigated to see if the path ends with something that looks
as if it were the perl interpreter. Failing this, the module falls back to
using C<$Config::Config{perlpath}>.
The path to perl can also be overridden by setting the global variable
C<$AnyEvent::Fork::PERL> - it's value will be used for all subsequent
invocations.
=cut
our $PERL;
my ($self) = @_;
return $EARLY->fork
if $EARLY;
unless (defined $PERL) {
# first find path of perl
my $perl = $^X;
# first we try $^X, but the path must be absolute (always on win32), and end in sth.
# that looks like perl. this obviously only works for posix and win32
unless (
($^O eq "MSWin32" || $perl =~ m%^/%)
&& $perl =~ m%[/\\]perl(?:[0-9]+(\.[0-9]+)+)?(\.exe)?$%i
) {
# if it doesn't look perlish enough, try Config
require Config;
$perl = $Config::Config{perlpath};
$perl =~ s/(?:\Q$Config::Config{_exe}\E)?$/$Config::Config{_exe}/;
}
Unlike the "new" method, this method *always* spawns a new perl
process (except in some cases, see AnyEvent::Fork::Early for
details). This reduces the amount of memory sharing that is
possible, and is also slower.
You should use "new" whenever possible, except when having a
template process around is unacceptable.
The path to the perl interpreter is divined using various methods -
first $^X is investigated to see if the path ends with something
that looks as if it were the perl interpreter. Failing this, the
module falls back to using $Config::Config{perlpath}.
The path to perl can also be overridden by setting the global
variable $AnyEvent::Fork::PERL - it's value will be used for all
subsequent invocations.
$pid = $proc->pid
Returns the process id of the process *iff it is a direct child of
the process running AnyEvent::Fork*, and "undef" otherwise. As a
general rule (that you cannot rely upon), processes created via
( run in 0.390 second using v1.01-cache-2.11-cpan-64827b87656 )