sub blocking_request {
my ($self, @payload) = @_;
- local our $Request = $self->router->send_request($self, $self->name, @payload);
- local our $Done;
- local our @Result;
- $self->router->run_until($Done);
- return @Result;
-}
-
-sub send_response {
- my ($self, $tag, @result) = @_;
- {
- our $Request;
- die "Out of order response ${\$Request->tag}, expecting ${tag}"
- if $Request->tag ne $tag;
- }
- our @Result = @result;
- our $Done = 1;
+ my ($done, @result);
+ my $cb = sub { my ($self, $tag, @r) = @_; @result = @r; $done = 1; };
+ $self->router->send_request($self, $cb, $self->name, @payload);
+ $self->router->run_until($done);
+ return @result;
}
1;