
IO::Async::DetachedCode - execute code asynchronously in child processes

This object is used indirectly via the IO::Async::Loop's detach_code method.
use IO::Async::Loop;
my $loop = IO::Async::Loop->new;
my $code = $loop->detach_code(
code => sub {
my ( $number ) = @_;
return is_prime( $number );
}
);
$code->call(
args => [ 123454321 ],
on_return => sub {
my $isprime = shift;
print "123454321 " . ( $isprime ? "is" : "is not" ) . " a prime number\n";
},
on_error => sub {
print STDERR "Cannot determine if it's prime - $_[0]\n";
},
);
$loop->run;

This object class provides a legacy compatibility layer for existing code that tries to construct such an object. It should not be used for new code; see instead the IO::Async::Function object, for which this is now a wrapper.

This function returns a new instance of a IO::Async::DetachedCode object. The %params hash takes the following keys:
A block of code to call in the child process.
These arguments are no longer used; any values passed will be ignored.
Optional integer, specifies the number of parallel workers to create.
If not supplied, 1 is used.
Passed through to the underlying IO::Async::Function object.

Calls one invocation of the contained function code block. See the call method on IO::Async::Function for more detail.
This method requests that the detached worker processes stop running.
This method in scalar context returns the number of workers currently running.
This method in list context returns a list of the PID numbers of all the currently running worker processes.

Paul Evans <leonerd@leonerd.org.uk>