method
perform
ruby latest stable - Class:
DRb::DRbServer::InvokeMethod
perform()public
No documentation available.
# File lib/drb/drb.rb, line 1566
def perform
@result = nil
@succ = false
setup_message
if $SAFE < @safe_level
info = Thread.current['DRb']
if @block
@result = Thread.new {
Thread.current['DRb'] = info
$SAFE = @safe_level
perform_with_block
}.value
else
@result = Thread.new {
Thread.current['DRb'] = info
$SAFE = @safe_level
perform_without_block
}.value
end
else
if @block
@result = perform_with_block
else
@result = perform_without_block
end
end
@succ = true
if @msg_id == :to_ary && @result.class == Array
@result = DRbArray.new(@result)
end
return @succ, @result
rescue StandardError, ScriptError, Interrupt
@result = $!
return @succ, @result
end