#!/usr/bin/perl
use strict;
use GRID::Machine;
use Sys::Hostname;
# This example does not work when cleanup code is in
# cleanup (-dk-) See examples/anonymouscallback2.pl
# foreach my $id (@ids) {
# delete $self->{callbacks}->{$id}
# }
#
my $host = 'beowulf';
my $machine = GRID::Machine->new(
host => $host,
uses => [ 'Sys::Hostname' ]
);
# register remote procedure
my $r = $machine->sub( remote => q{
my $rsub = shift;
die "Code reference expected\n" unless UNIVERSAL::isa($rsub, 'CODE');
gprint &hostname.": inside remote sub\n";
my $retval = $rsub->();
return 1+$retval;
} );
die $r->errmsg unless $r->ok;
my $a = $machine->callback(
sub {
print hostname().": inside anonymous inline callback...\n";
return 5;
}
);
$r = $machine->remote( $a );
die $r->errmsg unless $r->noerr;
$r = $machine->remote( $a );
die $r->errmsg unless $r->noerr;