--- AnyEvent-FCP/FCP.pm 2015/08/08 04:02:48 1.12 +++ AnyEvent-FCP/FCP.pm 2015/08/08 04:07:28 1.13 @@ -519,6 +519,8 @@ $self->on (sub { my ($self, $type, $kv, @extra) = @_; + $guard if 0; + if ($kv->{identifier} eq $identifier) { if ($type eq "persistent_request_modified") { $ok->($kv); @@ -566,13 +568,33 @@ _txn client_get => sub { my ($self, $ok, $err, $uri, $identifier, %kv) = @_; - $self->send_msg (client_get => - %kv, - uri => $uri, - identifier => $identifier, - ); + $self->serialise ($identifier => sub { + my ($self, $guard) = @_; + + $self->send_msg (client_get => + %kv, + uri => $uri, + identifier => $identifier, + ); + + $self->on (sub { + my ($self, $type, $kv, @extra) = @_; + + $guard if 0; + + if ($kv->{identifier} eq $identifier) { + if ($type eq "persistent_get") { + $ok->($kv); + return; + } elsif ($type eq "protocol_error") { + $err->($kv); + return; + } + } - $ok->(); + 1 + }); + }); }; =item $status = $fcp->remove_request ($identifier[, $global]) @@ -595,6 +617,8 @@ $self->on (sub { my ($self, $type, $kv, @extra) = @_; + $guard if 0; + if ($kv->{identifier} eq $identifier) { if ($type eq "persistent_request_removed") { $ok->(1);