diff options
Diffstat (limited to 'lib/mogilefs/mogilefs.rb')
-rw-r--r-- | lib/mogilefs/mogilefs.rb | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/mogilefs/mogilefs.rb b/lib/mogilefs/mogilefs.rb index 426217e..f5cb096 100644 --- a/lib/mogilefs/mogilefs.rb +++ b/lib/mogilefs/mogilefs.rb @@ -131,7 +131,7 @@ class MogileFS::MogileFS < MogileFS::Client MogileFS::InvalidResponseError, # truncated response MogileFS::Timeout @backend.shutdown - keys = ordered - ready.keys + keys = (ordered - ready.keys).reverse! retry end while limit == nil || limit > 0 rescue @@ -390,7 +390,7 @@ class MogileFS::MogileFS < MogileFS::Client def list_keys_verbose(keys, block) # :nodoc: # emulate the MogileFS::Mysql interface, slowly... - ordered = keys.dup + ordered = keys.reverse ready = {} on_file_info = lambda do |info| Hash === info or raise info @@ -398,8 +398,8 @@ class MogileFS::MogileFS < MogileFS::Client # deal with trackers with multiple queryworkers responding out-of-order ready[info["key"]] = info - while info = ready.delete(ordered[0]) - block.call(ordered.shift, info["length"], info["devcount"]) + while info = ready.delete(ordered[-1]) + block.call(ordered.pop, info["length"], info["devcount"]) end end opts = { :domain => @domain } @@ -422,7 +422,7 @@ class MogileFS::MogileFS < MogileFS::Client MogileFS::InvalidResponseError, # truncated response MogileFS::Timeout @backend.shutdown - keys = ordered - ready.keys + keys = (ordered - ready.keys).reverse! retry rescue @backend.shutdown |