IO::Async::DetachedCode - execute code asynchronously in child processes
IO::Async::DetachedCode
This object is used indirectly via the IO::Async::Loop's detach_code method.
IO::Async::Loop
detach_code
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:
%params
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.
IO::Async::Function
Calls one invocation of the contained function code block. See the call method on IO::Async::Function for more detail.
call
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>
To install IO::Async, copy and paste the appropriate command in to your terminal.
cpanm
cpanm IO::Async
CPAN shell
perl -MCPAN -e shell install IO::Async
For more information on module installation, please visit the detailed CPAN module installation guide.