NAME
Process::Delegatable - Run a Process::Storable object in an isolated perl
SYNOPSIS
# Background a finite length process
MyBigMemoryProcess->new( ... )->delegate('/opt/perl5005/perl');
DESCRIPTION
Process::Delegatable
extends Process::Storable for the purpose of creating process objects that can be run inside other instances, or even other versions, of Perl, with the results of the object ending up in the object in the current perl instance as if it had been run here.
It adds a delegate
method that launches a new copy of Perl, passing the Process to it using Process::Launcher, which will load and execute the process.
Please note that STDERR
for the delegated process will be sent to /dev/null (or your equivalent) so there is no way to recieve any error output from the delegated process.
If you want to add logging or locks or some other feature to your delegated process, that is your responsibility, and you set them up in the prepare
method.
METHODS
This method inherits all the normal methods from Process and in addition inherits the strict seperation of responsibility described in Process::Storable. You should be aware of both of these.
delegate
$process->delegate('/opt/perl5004/perl', '-MFoo::Bar');
The delegate
method is provided by default, and will start another instance of another Perl (or if no arguments, the same Perl you are current running), although not necesarily with the same environment.
This allows you to use Process::Delegatable
to run Processes that may need to allocate a large amount of memory, or need to be rigourously seperated from your main program.
SUPPORT
Bugs should be reported via the CPAN bug tracker at
http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Process
For other issues, contact the author.
AUTHOR
Adam Kennedy <adamk@cpan.org>, http://ali.as/
COPYRIGHT
Copyright 2006 Adam Kennedy.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.