X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FTak%2FRemote.pm;h=821de8682318a58ccbfd547c2f7f983ed8c522a3;hb=ca30c15e4b434c7ba6dbe61ed2df9125806d93ab;hp=7d1d7d6aadaf53ffdf6bd2fba6abc4da6ebf72b0;hpb=799b77f3fc1fa536b274a8e976b3c8351c45ad97;p=scpubgit%2FTak.git diff --git a/lib/Tak/Remote.pm b/lib/Tak/Remote.pm index 7d1d7d6..821de86 100644 --- a/lib/Tak/Remote.pm +++ b/lib/Tak/Remote.pm @@ -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;