NAME
Mojo::IOLoop::Subprocess::Sereal - Subprocesses with Sereal
SYNOPSIS
use Mojo::IOLoop::Subprocess::Sereal;
# Operation that would block the event loop for 5 seconds
my $subprocess = Mojo::IOLoop->$_subprocess(
sub {
my $subprocess = shift;
sleep 5;
return '♥', 'Mojolicious';
},
sub {
my ($subprocess, $err, @results) = @_;
say "I $results[0] $results[1]!";
}
);
# Start event loop if necessary
Mojo::IOLoop->start unless Mojo::IOLoop->is_running;
DESCRIPTION
Mojo::IOLoop::Subprocess::Sereal provides a "$_subprocess" method which
works as a drop-in replacement for "subprocess" in Mojo::IOLoop while
using Sereal for data serialization. Sereal is faster than Storable and
supports serialization of more reference types such as Regexp. The
"FREEZE/THAW CALLBACK MECHANISM" in Sereal::Encoder is supported to
control serialization of blessed objects.
See Mojo::IOLoop::Subprocess::Role::Sereal for a role to apply Sereal
data serialization to any Mojo::IOLoop::Subprocess.
EXPORTS
Mojo::IOLoop::Subprocess::Sereal exports the following variable by
default.
$_subprocess
my $subprocess = Mojo::IOLoop->$_subprocess(sub {...}, sub {...});
my $subprocess = Mojo::IOLoop->$_subprocess;
my $subprocess = $loop->$_subprocess(sub {...}, sub {...});
Build Mojo::IOLoop::Subprocess object to perform computationally
expensive operations in subprocesses, without blocking the event loop.
Composes and calls "with_sereal" in
Mojo::IOLoop::Subprocess::Role::Sereal to use Sereal for data
serialization. If arguments are provided, they will be used to call
"run" in Mojo::IOLoop::Subprocess.
BUGS
Report any issues on the public bugtracker.
AUTHOR
Dan Book <
[email protected]>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2016 by Dan Book.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)
SEE ALSO
Mojo::IOLoop, Mojo::IOLoop::Subprocess::Role::Sereal, Sereal