summaryrefslogtreecommitdiff
path: root/lib/drb/drb.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/drb/drb.rb')
-rw-r--r--lib/drb/drb.rb14
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/drb/drb.rb b/lib/drb/drb.rb
index e47b303aa4..6c516f0359 100644
--- a/lib/drb/drb.rb
+++ b/lib/drb/drb.rb
@@ -1571,17 +1571,23 @@ module DRb
if $SAFE < @safe_level
info = Thread.current['DRb']
if @block
- @result = Thread.new {
+ @result = Thread.new do
Thread.current['DRb'] = info
+ prev_safe_level = $SAFE
$SAFE = @safe_level
perform_with_block
- }.value
+ ensure
+ $SAFE = prev_safe_level
+ end.value
else
- @result = Thread.new {
+ @result = Thread.new do
Thread.current['DRb'] = info
+ prev_safe_level = $SAFE
$SAFE = @safe_level
perform_without_block
- }.value
+ ensure
+ $SAFE = prev_safe_level
+ end.value
end
else
if @block