[ruby-cvs:71098] normal:r64007 (trunk): thread.c (do_select): fix leak on exception

normal at ruby-lang.org normal at ruby-lang.org
Sat Jul 21 12:26:38 JST 2018


normal	2018-07-21 12:26:38 +0900 (Sat, 21 Jul 2018)

  New Revision: 64007

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=64007

  Log:
    thread.c (do_select): fix leak on exception
    
    When do_select is interrupted and raise happens from
    RUBY_VM_CHECK_INTS_BLOCKING, the original FD sets we copied
    do not get freed, leading to a memory leak.  Wrap up all the
    FD sets into a Ruby object to ensure the GC can release an
    allocations made for rb_fdset_t.
    
    This leak existed since Ruby 2.0.0 (r36430)
    
    [Bug #14929]

  Modified files:
    trunk/test/ruby/test_io.rb
    trunk/thread.c


More information about the ruby-cvs mailing list