AnyEvent-Fork-RPC
view release on metacpan or search on metacpan
Implementation:
use JSON ();
(
sub { JSON::encode_json \@_ },
sub { @{ JSON::decode_json shift } }
)
$AnyEvent::Fork::RPC::STORABLE_SERIALISER - Storable
This serialiser uses Storable, which means it has high
chance of serialising just about anything you throw at it,
at the cost of having very high overhead per operation. It
also comes with perl. It should be used when you need to
serialise complex data structures.
Implementation:
use Storable ();
(
sub { Storable::freeze \@_ },
sub { @{ Storable::thaw shift } }
exiting:
sub req {
...
eval {
...
};
if ($@) {
AnyEvent::RPC::event (throw => "$@");
AnyEvent::RPC::flush ();
exit;
}
...
}
PROCESS EXIT
If and when the child process exits depends on the backend and
configuration. Apart from explicit exits (e.g. by calling "exit") or
use JSON ();
(
sub { JSON::encode_json \@_ },
sub { @{ JSON::decode_json shift } }
)
=item C<$AnyEvent::Fork::RPC::STORABLE_SERIALISER> - L<Storable>
This serialiser uses L<Storable>, which means it has high chance of
serialising just about anything you throw at it, at the cost of having
very high overhead per operation. It also comes with perl. It should be
used when you need to serialise complex data structures.
Implementation:
use Storable ();
(
sub { Storable::freeze \@_ },
sub { @{ Storable::thaw shift } }
)
report the exception string back to the caller just before exiting:
sub req {
...
eval {
...
};
if ($@) {
AnyEvent::RPC::event (throw => "$@");
AnyEvent::RPC::flush ();
exit;
}
...
}
=back
=head2 PROCESS EXIT
( run in 0.581 second using v1.01-cache-2.11-cpan-496ff517765 )