| Module | DRb::DRbServer::InvokeMethod18Mixin |
| In: |
lib/drb/invokemethod.rb
|
# File lib/drb/invokemethod.rb, line 6
6: def block_yield(x)
7: if x.size == 1 && x[0].class == Array
8: x[0] = DRbArray.new(x[0])
9: end
10: block_value = @block.call(*x)
11: end
# File lib/drb/invokemethod.rb, line 13
13: def perform_with_block
14: @obj.__send__(@msg_id, *@argv) do |*x|
15: jump_error = nil
16: begin
17: block_value = block_yield(x)
18: rescue LocalJumpError
19: jump_error = $!
20: end
21: if jump_error
22: case jump_error.reason
23: when :retry
24: retry
25: when :break
26: break(jump_error.exit_value)
27: else
28: raise jump_error
29: end
30: end
31: block_value
32: end
33: end