[ruby-cvs:50525] ko1:r43383 (trunk): * vm_trace.c: exterminate Zombies.

ko1 at ruby-lang.org ko1 at ruby-lang.org
Tue Oct 22 15:24:55 JST 2013


ko1	2013-10-22 15:24:54 +0900 (Tue, 22 Oct 2013)

  New Revision: 43383

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=43383

  Log:
    * vm_trace.c: exterminate Zombies.
      There is a bug that T_ZOMBIE objects are not collected.
      Because there is a pass to miss finalizer postponed job
      with multi-threading. This patch solve this issue.
    * vm_trace.c (rb_postponed_job_register_one): set
      RUBY_VM_SET_POSTPONED_JOB_INTERRUPT(th) if another same job
      is registered.
      There is a possibility to remain a postponed job without
      interrupt flag.
    * vm_trace.c (rb_postponed_job_register_one): check interrupt
      carefully.
    * vm_trace.c (rb_postponed_job_register_one): use additional space
      to avoid buffer full.
    * gc.c (gc_finalize_deferred_register): check failure.
    * thread.c (rb_threadptr_execute_interrupts): check
      `postponed_job_interrupt' immediately.  There is a possibility
      to miss this flag.

  Modified files:
    trunk/ChangeLog
    trunk/gc.c
    trunk/thread.c
    trunk/vm_trace.c


More information about the ruby-cvs mailing list