summaryrefslogtreecommitdiff
path: root/ractor.rb
diff options
context:
space:
mode:
authornagachika <nagachika@ruby-lang.org>2022-11-13 11:22:53 +0900
committernagachika <nagachika@ruby-lang.org>2022-11-13 11:22:53 +0900
commitf8044a770009b78d46b583600c9bd6660328303f (patch)
treedcf66bb83f456fe315b4b082dc656badab5dc99b /ractor.rb
parent728d9f18348bcffedb0880c67015f08a7c19665f (diff)
merge revision(s) 131c31a9209c61f84d318aa18b61f468f48b8219: [Backport #19081]
[Bug #19081] Show the caller location in warning for Ractor The internal location in ractor.rb is not usefull at all. ``` $ ruby -e 'Ractor.new {}' <internal:ractor>:267: warning: Ractor is experimental, ... ``` --- bootstraptest/test_ractor.rb | 6 ++++++ ractor.c | 6 ------ ractor.rb | 4 ++++ 3 files changed, 10 insertions(+), 6 deletions(-)
Diffstat (limited to 'ractor.rb')
-rw-r--r--ractor.rb4
1 files changed, 4 insertions, 0 deletions
diff --git a/ractor.rb b/ractor.rb
index ef36b2937f..bc3d33cae2 100644
--- a/ractor.rb
+++ b/ractor.rb
@@ -262,6 +262,10 @@ class Ractor
def self.new(*args, name: nil, &block)
b = block # TODO: builtin bug
raise ArgumentError, "must be called with a block" unless block
+ if __builtin_cexpr!("RBOOL(ruby_single_main_ractor)")
+ warn("Ractor is experimental, and the behavior may change in future versions of Ruby! " \
+ "Also there are many implementation issues.", uplevel: 0, category: :experimental)
+ end
loc = caller_locations(1, 1).first
loc = "#{loc.path}:#{loc.lineno}"
__builtin_ractor_create(loc, name, args, b)