The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl end-to-end.t'

$ENV{log_level}='info';
$SIG{CHLD} = 'IGNORE';

use Test::More tests => 3;
BEGIN { use_ok('Parallel::Fork::BossWorkerAsync') };
require_ok('Parallel::Fork::BossWorkerAsync');

my $bw = Parallel::Fork::BossWorkerAsync->new(
  work_handler   => \&work,
  result_handler => \&result,
);

# nonblocking test
$bw->add_work( { data => 1 } );
is( $bw->get_result_nb(), undef, "nonblocking");

$bw->get_result();
$bw->shut_down();

sub work {
  my ($job)=@_;
  sleep(3);
  return { result => $job->{data} };
}

sub result {
  my ($r)=@_;
  $result += $r->{result};
  return $r;
}