1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/bootstraptest
ko1 833cade2dc * vm_method.c (rb_unlink_method_entry, rb_sweep_method_entry):
added.  Unlinked method entries are collected to
  vm->unlinked_method_entry_list.  On the GC timing, mark all method
  entries which are on all living threads.  Only non-marked method
  entries are collected.  This hack prevents releasing living method
  entry.
  [Performance Consideration] Since this Method Entry GC (MEGC)
  doesn't occuer frequently, MEGC will not be a performance bottleneck.
  However, to traverse living method entries, every control frame push
  needs to clear cfp->me field.  This will be a performance issue
  (because pushing control frame is occurred frequently).
  Bug #2777 [ruby-dev:40457]
* cont.c (fiber_init): init cfp->me.
* gc.c (garbage_collect): kick rb_sweep_method_entry().
* method.h (rb_method_entry_t): add a mark field.
* vm.c (invoke_block_from_c): set passed me.
* vm.c (rb_thread_mark): mark cfp->me.
* vm_core.h (rb_thread_t): add a field passed_me.
* vm_core.h (rb_vm_t): add a field unlinked_method_entry_list.
* vm_insnhelper.c (vm_push_frame): clear cfp->me at all times.
* vm_insnhelper.c (vm_call_bmethod): pass me.
* bootstraptest/test_method.rb: add a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27634 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-05 17:51:21 +00:00
..
pending.rb
runner.rb * bootstraptest/runner.rb (assert_normal_exit): add :timeout option. 2010-02-17 12:27:34 +00:00
test_attr.rb
test_autoload.rb
test_block.rb
test_class.rb
test_eval.rb fixed tests. 2009-12-04 07:09:21 +00:00
test_exception.rb * bootstraptest/test_exception.rb: test for [ruby-core:24767]. 2009-08-05 04:01:08 +00:00
test_finalizer.rb
test_flip.rb
test_flow.rb * vm.c (vm_exec): reset thread state before starting vm loop. 2010-02-09 19:06:39 +00:00
test_fork.rb * bootstraptest/test_fork.rb: add a test for [ruby-core:28924]. 2010-04-19 16:03:39 +00:00
test_gc.rb * bootstraptest/test_gc.rb: added tests based on [ruby-dev:39484] 2009-10-16 09:42:20 +00:00
test_io.rb * bootstraptest/test_io.rb (megacontent-copy_stream): get rid of 2010-05-05 02:43:15 +00:00
test_jump.rb * compile.c (NODE_NEXT, NODE_REDO): add dummy putnil instruction to 2010-04-20 15:28:33 +00:00
test_literal.rb * parse.y (literal_concat_gen): concat body from dstr instead of 2009-09-03 08:57:28 +00:00
test_load.rb
test_marshal.rb
test_massign.rb
test_method.rb * vm_method.c (rb_unlink_method_entry, rb_sweep_method_entry): 2010-05-05 17:51:21 +00:00
test_objectspace.rb
test_proc.rb
test_struct.rb
test_syntax.rb * parse.y (parser_yylex): reverted r27388 due to backward 2010-04-21 04:36:05 +00:00
test_thread.rb * insns.def (onceinlinecache): add exclusion control for a region 2010-04-27 14:06:16 +00:00