From c2d87245777c92065083aba0bbf74aafc780f5fb Mon Sep 17 00:00:00 2001 From: seki Date: Sun, 13 Feb 2005 15:44:36 +0000 Subject: pass DRb info to sub thread git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@7968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 ++++++ lib/drb/drb.rb | 5 ++++- test/drb/test_drb.rb | 8 ++++++-- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index f9277ed71..ffeef81d3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Mon Feb 14 00:40:49 2005 Masatoshi SEKI + + * lib/ddrb/drb.rb (InvokeMethod.perform): pass DRb info to sub thread. + + * test/drb/test_drb.rb (test_01_safe1_safe4_eval): fix test case. + Sun Feb 13 23:13:46 2005 Kouhei Sutou * lib/rss/dublincore.rb (RSS::DublicCoreModel#date{,=}): added diff --git a/lib/drb/drb.rb b/lib/drb/drb.rb index ab2cba894..a3abd4511 100644 --- a/lib/drb/drb.rb +++ b/lib/drb/drb.rb @@ -1455,13 +1455,16 @@ module DRb setup_message if $SAFE < @safe_level + info = Thread.current['DRb'] if @block - @result = Thread.new { + @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 diff --git a/test/drb/test_drb.rb b/test/drb/test_drb.rb index ae8ba4252..16d47315a 100644 --- a/test/drb/test_drb.rb +++ b/test/drb/test_drb.rb @@ -241,12 +241,16 @@ class TestDRbEval < Test::Unit::TestCase remote_class = four.remote_class + assert_equal(1, remote_class.class_eval('1')) + + assert_equal(1, remote_class.module_eval('1')) + assert_raises(SecurityError) do - remote_class.class_eval('ENV.inspect') + remote_class.class_eval('ENV = {}') end assert_raises(SecurityError) do - remote_class.module_eval('ENV.inspect') + remote_class.module_eval('ENV = {}') end end end -- cgit