From ae0537b5f4b9f475ffb962cd161ef6001a20f9ad Mon Sep 17 00:00:00 2001 From: Yuriy Nevinitsin <nevinitsin@corp.mail.ru> Date: Tue, 19 Jun 2012 14:57:13 +0400 Subject: [PATCH] [connector][perl] fix ordering --- connector/perl/lib/MR/IProto.pm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/connector/perl/lib/MR/IProto.pm b/connector/perl/lib/MR/IProto.pm index 058e9be7f5..6a410e24a5 100644 --- a/connector/perl/lib/MR/IProto.pm +++ b/connector/perl/lib/MR/IProto.pm @@ -288,15 +288,17 @@ sub send_bulk { die "Method must be called in void context if you want to use async" if defined wantarray; my $cv = AnyEvent->condvar(); $cv->begin( sub { $callback->(\@result) } ); + my $i = 0; foreach my $message ( @$messages ) { + my $idx = $i; $cv->begin(); $self->_send($message, sub { my ($data, $error) = @_; - push @result, blessed($data) ? $data - : { data => $data, error => $error }; + $result[$idx] = blessed($data) ? $data : { data => $data, error => $error }; $cv->end(); return; }); + ++$i; } $cv->end(); return; @@ -306,13 +308,15 @@ sub send_bulk { my $olddie = ref $SIG{__DIE__} eq 'CODE' ? $SIG{__DIE__} : ref $SIG{__DIE__} eq 'GLOB' ? *{$SIG{__DIE__}}{CODE} : undef; local $SIG{__DIE__} = sub { local $! = 0; $olddie->(@_); } if $olddie; my %servers; + my $i = 0; foreach my $message ( @$messages ) { + my $idx = $i; $self->_send_now($message, sub { my ($data, $error) = @_; - push @result, blessed($data) ? $data - : { data => $data, error => $error }; + $result[$idx] = blessed($data) ? $data : { data => $data, error => $error }; return; }, \%servers); + ++$i; } $self->_recv_now(\%servers); return \@result; -- GitLab