From 8edb29e5a013da5a74fba9c2484bd6d3913bfb4b Mon Sep 17 00:00:00 2001 From: Alan Wu Date: Thu, 23 Sep 2021 16:27:05 -0400 Subject: Reconstruct interpreter state before calling rb_ivar_get() It could raise ractor exceptions. The included test didn't run properly before this change. --- bootstraptest/test_yjit.rb | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'bootstraptest') diff --git a/bootstraptest/test_yjit.rb b/bootstraptest/test_yjit.rb index 6d507e17d7..73b87e17fd 100644 --- a/bootstraptest/test_yjit.rb +++ b/bootstraptest/test_yjit.rb @@ -2018,3 +2018,23 @@ assert_normal_exit %q{ foo([1]) rescue nil foo([1]) rescue nil } + +# test ractor exception on when getting ivar +assert_equal '42', %q{ + class A + def self.foo + _foo = 1 + _bar = 2 + begin + @bar + rescue Ractor::IsolationError + 42 + end + end + end + + A.foo + A.foo + + Ractor.new { A.foo }.take +} -- cgit v1.2.3