diff options
author | Koichi Sasada <ko1@atdot.net> | 2020-12-22 02:22:51 +0900 |
---|---|---|
committer | Koichi Sasada <ko1@atdot.net> | 2020-12-22 05:54:14 +0900 |
commit | d0e4ccbefcdd6032d0ae70bc54c9a4fb55d92576 (patch) | |
tree | e3f9a1c74ab923e831e8049352d984d0ceb4719a | |
parent | 35471a948739ca13b85fe900871e081d553f68e6 (diff) | |
download | ruby-d0e4ccbefcdd6032d0ae70bc54c9a4fb55d92576.tar.gz |
add Ractor.main
It returns main Ractor, like Thread.main.
[Feature #17418]
-rw-r--r-- | bootstraptest/test_ractor.rb | 7 | ||||
-rw-r--r-- | ractor.rb | 7 |
2 files changed, 14 insertions, 0 deletions
diff --git a/bootstraptest/test_ractor.rb b/bootstraptest/test_ractor.rb index 06bd739931..843714a7bc 100644 --- a/bootstraptest/test_ractor.rb +++ b/bootstraptest/test_ractor.rb @@ -396,6 +396,13 @@ assert_equal 'ok', %q{ end } +# Ractor.main returns main ractor +assert_equal 'true', %q{ + Ractor.new{ + Ractor.main + }.take == Ractor.current +} + # a ractor with closed outgoing port should terminate assert_equal 'ok', %q{ Ractor.new do @@ -768,4 +768,11 @@ class Ractor def []=(sym, val) Primitive.ractor_local_value_set(sym, val) end + + # returns main ractor + def self.main + __builtin_cexpr! %q{ + rb_ractor_self(GET_VM()->ractor.main_ractor); + } + end end |