Project

General

Profile

« Previous | Next » 

Revision 2910f673

Added by nagachika (Tomoyuki Chikanaga) over 13 years ago

  • cont.c (rb_fiber_reset_root_local_storage): add a new function to
    restore rb_thread_t::local_storage.

  • cont.c (rb_obj_is_fiber): add a new function to tell finalizer to
    prevent fibers from destroy.

  • gc.c (rb_objspace_call_finalizer): don't sweep fibers at finalizing
    objspace.

  • internal.h (rb_fiber_reset_root_local_storage, rb_obj_is_fiber):
    add prototypes.

  • vm.c (ruby_vm_destruct): reset main thread's local_storage before
    free main thread. rb_thread_t::local_storage is replaced by fiber's
    local storage when forked from fiber, and it should be already freed
    when the fiber was destroyed.

  • test/ruby/test_fiber.rb (test_fork_from_fiber): add test for fork
    from fiber.

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