Test::SharedObject - Data sharing in multi process.
use strict; use warnings; use Test::More tests => 2; use Test::SharedFork; use Test::SharedObject; my $shared = Test::SharedObject->new(0); is $shared->get, 0; my $pid = fork; die $! unless defined $pid; if ($pid == 0) {# child $shared->txn(sub { my $counter = shift; $counter++; return $counter; }); exit; } wait; is $shared->get, 1;
Test::SharedObject provides atomic data operation between multiple process.
Creates a new Test::SharedObject instance. And set $value as initial value.
$value
Internally, Creates temporary file, and serialize $value by Storable, and save.
Provides atomic data operation between multiple process in \&coderef. Set shared value as first arguments in \&coderef, and return value as new shared value.
\&coderef
Internally:
Good Example:
$shared->txn(sub { my $counter = shift; $counter++; # atomic!! return $counter; });
Bad Example:
my $counter; $shared->txn(sub { $counter = shift; }); $counter++; # *NOT* atomic!! $shared->txn(sub { return $counter; });
Set $value as shared value. The syntactic sugar for $shared->txn().
$shared->txn()
Get shared value. The syntactic sugar for $shared->txn().
Copyright (C) karupanerura.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
karupanerura <karupa@cpan.org>
To install Test::SharedObject, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Test::SharedObject
CPAN shell
perl -MCPAN -e shell install Test::SharedObject
For more information on module installation, please visit the detailed CPAN module installation guide.