FreeBSD Manual Pages
AnyEvent::Run(3) User Contributed Perl Documentation AnyEvent::Run(3) NAME AnyEvent::Run - Run a process or coderef asynchronously SYNOPSIS use AnyEvent; use AnyEvent::Run; my $cv = AnyEvent->condvar; my $handle = AnyEvent::Run->new( cmd => [ 'ls', '-l' ], priority => 19, # optional nice value on_read => sub { my $handle = shift; ... $cv->send; }, on_error => sub { my ($handle, $fatal, $msg) = @_; ... $cv->send; }, ); # Send data to the process's STDIN $handle->push_write($data); $cv->recv; DESCRIPTION AnyEvent::Run is a subclass of AnyEvent::Handle, so reading it's documentation first is recommended. This module is designed to run a child process, using an explicit command line, a class name, or a coderef. It should work on any Unix system as well as Windows 2000 and higher. For an alternate way of running a coderef in a forked process using AnyEvent, see AnyEvent::Util's fork_call function. METHODS $handle = new( %args ) Creates and returns a new AnyEvent::Run object. The process forks and either execs (Unix) or launches a new process (Windows). If using a coderef, the coderef is run in the forked process. The process's STDIN, STDOUT, and STDERR and connected to $handle->{fh}. The child process is automatically killed if the AnyEvent::Run object goes out of scope. See AnyEvent::Handle for additional parameters for new(). cmd Required. Takes a string, an arrayref, or a code reference. cmd => 'ps ax' cmd => [ 'ps, 'ax' ] cmd => sub { print "Hi, I'm $$\n" } When launching an external command, using an arrayref is recommended so that your command is properly escaped. Take care when using coderefs on Windows, as your code will run in a thread. Avoid using modules that are not thread-safe. args Optional. Arrayref of arguments to be passed to cmd. class Optional. Class name to be loaded in the child process. Using this method is a more efficient way to execute Perl code than by using a coderef. This will exec a new Perl interpreter, loading only this class, and will call that class's main() method. my $handle = AnyEvent::Run->new( class => 'My::SubProcess', ... ); package My::SubProcess; sub main { print "Hi, I'm $$\n"; } 1; method Optional. When using class, instead of calling main(), the given method will be called. priority Optional. A numeric value between -19 and 19. On Unix, you must be root to change the priority to a value less than 0. On Windows, these values are mapped to the following priority levels: -19 to -16 High -15 to -6 Above Normal -5 to 4 Normal 5 to 14 Below Normal 15 to 19 Idle BUGS AnyEvent::Handle's linger option is not supported. Open file descriptors are not closed under Windows after forking. THANKS This module was based in part on POE::Wheel::Run and POE::Wheel::Run::Win32. SEE ALSO AnyEvent AnyEvent::Handle AnyEvent::Util AUTHOR Andy Grundman, <andy@hybridized.org> COPYRIGHT AND LICENSE This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.32.0 2009-07-21 AnyEvent::Run(3)
NAME | SYNOPSIS | DESCRIPTION | METHODS | BUGS | THANKS | SEE ALSO | AUTHOR | COPYRIGHT AND LICENSE
Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=AnyEvent::Run&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>