NAME

RPC::Switch::Client::Tiny::Async - Child handling for async workers

SYNOPSIS

  use RPC::Switch::Client::Tiny::Async;

  sub trace_cb {
	my ($type, $msg) = @_;
	printf "%s: %s\n", $type, to_json($msg, {pretty => 0, canonical => 1});
  }

  my $async = RPC::Switch::Client::Tiny::Async->new(trace_cb => \&trace_cb);

  sub child_handler {
	my ($self, $fh) = @_;
	my $req = <$fh>;
	chomp $req;

	print "child $$ got: $req\n";
  	print $fh "pong\n";
	$fh->flush();
	exit 0;
  }
  my $worker = bless {};
  my $child = $async->child_start($worker);

  print {$child->{reader}} "ping\n";
  $child->{reader}->flush();
  my $res = readline($child->{reader});
  chomp $res;

  $async->child_finish($child, 'done');
  $async->childs_reap();

DESCRIPTION

The worker_child methods are private and handle the childs used for the async client->work mode.

AUTHORS

Barnim Dzwillo @ Strato AG