diff options
author | Koichi Sasada <ko1@atdot.net> | 2020-11-30 16:18:43 +0900 |
---|---|---|
committer | Koichi Sasada <ko1@atdot.net> | 2020-12-01 15:44:18 +0900 |
commit | 182fb73c40351f917bf44626c44c1adb6cb1aa5a (patch) | |
tree | fe9dd0b8c312dc491b1576004ce80122b77fbfe4 /vm.c | |
parent | 8247b8eddeb2a504a5c9776d1f77d413c8146897 (diff) |
rb_ext_ractor_safe() to declare ractor-safe ext
C extensions can violate the ractor-safety, so only ractor-safe
C extensions (C methods) can run on non-main ractors.
rb_ext_ractor_safe(true) declares that the successive
defined methods are ractor-safe. Otherwiwze, defined methods
checked they are invoked in main ractor and raise an error
if invoked at non-main ractors.
[Feature #17307]
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/3824
Diffstat (limited to 'vm.c')
-rw-r--r-- | vm.c | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -3052,6 +3052,7 @@ th_init(rb_thread_t *th, VALUE self) #endif th->name = Qnil; th->report_on_exception = th->vm->thread_report_on_exception; + th->ext_config.ractor_safe = true; } static VALUE |