The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
$| = 1;
use strict;
use warnings;

use IPC::MPS;

my $vpid = spawn {
	receive { 
		msg foo => sub {
			my ($from, $text) = @_;
			print "foo: $text\n";

			snd(0, "too", 1);
			print "too -> baz\n";

			my $rv = wt(0, "baz");
			print "baz: $rv\n";

			my @rv = snd_wt(0, "sugar", $rv);
			print "sugar: $rv[0]\n";

			my $n = 2;
			snd(0, "sugar", $_)                                       foreach (0 .. $n);
			print "wt multy: ",    scalar wt(0, "sugar"),"\n"         foreach (0 .. $n);
			print "sugar multy: ", scalar snd_wt(0, "sugar", $_),"\n" foreach (0 .. $n);

			exit;
		};
	};
};


snd($vpid, "foo", "Hello, wait");

receive {
	msg too => sub {
		my ($from, $i) = @_;
		print "too: $i\n";
		snd($from, "baz", ++$i);
	};
	msg sugar => sub {
		my ($from, $i) = @_;
		snd($from, "sugar", ++$i);
	};
};