Project

General

Profile

« Previous | Next » 

Revision 837fd5e4

Added by ko1 (Koichi Sasada) over 6 years ago

Use rb_execution_context_t instead of rb_thread_t
to represent execution context [Feature #14038]

  • vm_core.h (rb_thread_t): rb_thread_t::ec is now a pointer.
    There are many code using th to represent execution context
    (such as cfp, VM stack and so on). To access ec, they need to
    use th->ec->... (adding one indirection) so that we need to
    replace them by passing ec instead of th.

  • vm_core.h (GET_EC()): introduced to access current ec. Also
    remove ruby_current_thread global variable.

  • cont.c (rb_context_t): introduce rb_context_t::thread_ptr instead of
    rb_context_t::thread_value.

  • cont.c (ec_set_vm_stack): added to update vm_stack explicitly.

  • cont.c (ec_switch): added to switch ec explicitly.

  • cont.c (rb_fiber_close): added to terminate fibers explicitly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e