about summary refs log tree commit homepage
path: root/lib/mogilefs/backend.rb
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2011-12-12 07:48:36 +0000
committerEric Wong <normalperson@yhbt.net>2011-12-12 07:48:36 +0000
commit594295a29cbc33fc04b7c0b87ecf664f036819a9 (patch)
tree8fce2eca22344f22a909ca802df7dbc61a776d14 /lib/mogilefs/backend.rb
parent8a54653184536b99bf74bcaedb8cf84ea0f4f693 (diff)
downloadmogilefs-client-594295a29cbc33fc04b7c0b87ecf664f036819a9.tar.gz
This adds an internal :ruby_no_raise flag to the backend
to avoid exceptions.
Diffstat (limited to 'lib/mogilefs/backend.rb')
-rw-r--r--lib/mogilefs/backend.rb6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/mogilefs/backend.rb b/lib/mogilefs/backend.rb
index d04247b..f33c42d 100644
--- a/lib/mogilefs/backend.rb
+++ b/lib/mogilefs/backend.rb
@@ -264,11 +264,13 @@ class MogileFS::Backend
 
   # Performs the +cmd+ request with +args+.
   def do_request(cmd, args, idempotent = false)
-    request = make_request cmd, args
+    no_raise = args.delete(:ruby_no_raise)
+    request = make_request(cmd, args)
     @mutex.synchronize do
       begin
         io = dispatch_unlocked(request)
-        line = io.timed_gets(@timeout) and return parse_response(line)
+        line = io.timed_gets(@timeout) and
+          return parse_response(line, no_raise ? request : nil)
 
         idempotent or
           raise EOFError, "end of file reached after: #{request.inspect}"