switch Request to invocant + method, clean up Remote using a coderef method
[scpubgit/Tak.git] / lib / Tak / Remote.pm
index 7d1d7d6..821de86 100644 (file)
@@ -8,22 +8,11 @@ has name => (is => 'ro', required => 1);
 
 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;