summaryrefslogtreecommitdiff
path: root/vm.c
diff options
context:
space:
mode:
authorKoichi Sasada <ko1@atdot.net>2020-10-20 10:46:43 +0900
committerKoichi Sasada <ko1@atdot.net>2020-10-20 15:38:54 +0900
commit99310e3eb56fbc85bb45119285812eb959448d0c (patch)
treeae11ca7bf99ff3b1d60d297c63d64e0540fe51c0 /vm.c
parent9ced5fae6df9e70506ddad822e15745884e365fd (diff)
Some global variables can be accessed from ractors
Some global variables should be used from non-main Ractors. [Bug #17268] ```ruby # ractor-local (derived from created ractor): debug '$DEBUG' => $DEBUG, '$-d' => $-d, # ractor-local (derived from created ractor): verbose '$VERBOSE' => $VERBOSE, '$-w' => $-w, '$-W' => $-W, '$-v' => $-v, # process-local (readonly): other commandline parameters '$-p' => $-p, '$-l' => $-l, '$-a' => $-a, # process-local (readonly): getpid '$$' => $$, # thread local: process result '$?' => $?, # scope local: match '$~' => $~.inspect, '$&' => $&, '$`' => $`, '$\'' => $', '$+' => $+, '$1' => $1, # scope local: last line '$_' => $_, # scope local: last backtrace '$@' => $@, '$!' => $!, # ractor local: stdin, out, err '$stdin' => $stdin.inspect, '$stdout' => $stdout.inspect, '$stderr' => $stderr.inspect, ```
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/3670
Diffstat (limited to 'vm.c')
-rw-r--r--vm.c18
1 files changed, 4 insertions, 14 deletions
diff --git a/vm.c b/vm.c
index 879814a14b..ada33ae87b 100644
--- a/vm.c
+++ b/vm.c
@@ -3515,28 +3515,18 @@ Init_top_self(void)
rb_define_alias(rb_singleton_class(rb_vm_top_self()), "inspect", "to_s");
}
-static VALUE *
-ruby_vm_verbose_ptr(rb_vm_t *vm)
-{
- return &vm->verbose;
-}
-
-static VALUE *
-ruby_vm_debug_ptr(rb_vm_t *vm)
-{
- return &vm->debug;
-}
-
VALUE *
rb_ruby_verbose_ptr(void)
{
- return ruby_vm_verbose_ptr(GET_VM());
+ rb_ractor_t *cr = GET_RACTOR();
+ return &cr->verbose;
}
VALUE *
rb_ruby_debug_ptr(void)
{
- return ruby_vm_debug_ptr(GET_VM());
+ rb_ractor_t *cr = GET_RACTOR();
+ return &cr->debug;
}
/* iseq.c */