summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ractor.c4
-rw-r--r--test/ruby/test_parse.rb10
2 files changed, 8 insertions, 6 deletions
diff --git a/ractor.c b/ractor.c
index 484b5c78b9..585435c820 100644
--- a/ractor.c
+++ b/ractor.c
@@ -2445,10 +2445,10 @@ rb_ractor_make_shareable_copy(VALUE obj)
VALUE
rb_ractor_ensure_shareable(VALUE obj, VALUE name)
{
- if (!RTEST(rb_ractor_shareable_p(obj))) {
+ if (!rb_ractor_shareable_p(obj)) {
VALUE message = rb_sprintf("cannot assign unshareable object to %"PRIsVALUE,
name);
- rb_exc_raise(rb_exc_new_str(rb_eRactorError, message));
+ rb_exc_raise(rb_exc_new_str(rb_eRactorIsolationError, message));
}
return obj;
}
diff --git a/test/ruby/test_parse.rb b/test/ruby/test_parse.rb
index 8d12538fa3..aeaa42dadb 100644
--- a/test/ruby/test_parse.rb
+++ b/test/ruby/test_parse.rb
@@ -1178,8 +1178,8 @@ x = __ENCODING__
Class.new.class_eval(code)
end
- def assert_ractor_error(message, code)
- assert_raise_with_message(Ractor::Error, message) do
+ def assert_raise_separately(error, message, code)
+ assert_raise_with_message(error, message) do
eval_separately(code)
end
end
@@ -1243,7 +1243,8 @@ x = __ENCODING__
end
def test_shareable_constant_value_unshareable_literal
- assert_ractor_error(/unshareable/, "#{<<~"begin;"}\n#{<<~'end;'}")
+ assert_raise_separately(Ractor::IsolationError, /unshareable/,
+ "#{<<~"begin;"}\n#{<<~'end;'}")
begin;
# shareable_constant_value: literal
C = ["Not " + "shareable"]
@@ -1264,7 +1265,8 @@ x = __ENCODING__
end
def test_shareable_constant_value_unfrozen
- assert_ractor_error(/does not freeze object correctly/, "#{<<~"begin;"}\n#{<<~'end;'}")
+ assert_raise_separately(Ractor::Error, /does not freeze object correctly/,
+ "#{<<~"begin;"}\n#{<<~'end;'}")
begin;
# shareable_constant_value: experimental_everything
o = Object.new