mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
cont.c: direct use of rb_thread_t
The only usage of rb_fiber_reset_root_local_storage() is from
ruby_vm_destruct(), where the object space is already terminated.
This `th->self` is not alive. Why not just use `th` itself.
See also: 451294954
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65574 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
4a80c0540f
commit
5fcc43e2d3
3 changed files with 4 additions and 5 deletions
4
cont.c
4
cont.c
|
@ -1833,10 +1833,8 @@ rb_fiber_yield(int argc, const VALUE *argv)
|
|||
}
|
||||
|
||||
void
|
||||
rb_fiber_reset_root_local_storage(VALUE thval)
|
||||
rb_fiber_reset_root_local_storage(rb_thread_t *th)
|
||||
{
|
||||
rb_thread_t *th = rb_thread_ptr(thval);
|
||||
|
||||
if (th->root_fiber && th->root_fiber != th->ec->fiber_ptr) {
|
||||
th->ec->local_storage = th->root_fiber->cont.saved_ec.local_storage;
|
||||
}
|
||||
|
|
|
@ -1374,9 +1374,10 @@ VALUE rb_complex_sqrt(VALUE x);
|
|||
VALUE rb_dbl_complex_polar_pi(double abs, double ang);
|
||||
VALUE rb_complex_pow(VALUE self, VALUE other);
|
||||
|
||||
struct rb_thread_struct;
|
||||
/* cont.c */
|
||||
VALUE rb_obj_is_fiber(VALUE);
|
||||
void rb_fiber_reset_root_local_storage(VALUE);
|
||||
void rb_fiber_reset_root_local_storage(struct rb_thread_struct *);
|
||||
void ruby_register_rollback_func_for_ensure(VALUE (*ensure_func)(ANYARGS), VALUE (*rollback_func)(ANYARGS));
|
||||
|
||||
/* debug.c */
|
||||
|
|
2
vm.c
2
vm.c
|
@ -2201,7 +2201,7 @@ ruby_vm_destruct(rb_vm_t *vm)
|
|||
struct rb_objspace *objspace = vm->objspace;
|
||||
vm->main_thread = 0;
|
||||
if (th) {
|
||||
rb_fiber_reset_root_local_storage(th->self);
|
||||
rb_fiber_reset_root_local_storage(th);
|
||||
thread_free(th);
|
||||
}
|
||||
rb_vm_living_threads_init(vm);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue