[ruby-cvs:50717] ko1:r43574 (trunk): * gc.c (vm_malloc_increase): check GVL before gc_rest_sweep().

ko1 at ruby-lang.org ko1 at ruby-lang.org
Fri Nov 8 03:03:12 JST 2013


ko1	2013-11-08 03:03:12 +0900 (Fri, 08 Nov 2013)

  New Revision: 43574

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

  Log:
    * gc.c (vm_malloc_increase): check GVL before gc_rest_sweep().
      vm_malloc_increase() can be called without GVL.
      However, gc_rest_sweep() assumes acquiring GVL.
      To avoid this problem, check GVL before gc_rest_sweep().
      [Bug #9090]
      This workaround introduces possibility to set malloc_limit as
      wrong value (*1). However, this may be rare case. So I commit it.
      *1: Without rest_sweep() here, gc_rest_sweep() can decrease
          malloc_increase due to ruby_sized_xfree().

  Modified files:
    trunk/ChangeLog
    trunk/gc.c


More information about the ruby-cvs mailing list