Eric Wong <normalperson / yhbt.net> wrote:
> sir.nickolas / gmail.com wrote:
> > https://bugs.ruby-lang.org/issues/13632
> 
> r59020 should fix it trivially in trunk.

Make that r59028 :x  r59020 interacted badly with r57422

> Backporting to <= 2.4 is only a little different due to the
> data structure change:

r59028 backporting is more difficult.

Below are links to backported patches from trunk to fix [Bug #13632] for
Ruby 2.4 maintenance branches and earlier.   I mainly wanted to
backport r59028, but that depends on r58812 (originally intended
as a pure performance optimization).

I'd rather not change r59028 to something unrecognizable from
what is in trunk for backporting, as that might negatively
impact future backports.

r58812: speed up IO#close with many threads
   https://80x24.org/spew/20170607195901.18958-2-e / 80x24.org/raw
r59028: IO#close: do not enqueue redundant interrupts (take #2)
   https://80x24.org/spew/20170607195901.18958-3-e / 80x24.org/raw

 test/ruby/test_io.rb | 22 ++++++++++++++++++++++
 thread.c             | 33 ++++++++++++++++++++++++---------
 vm.c                 |  1 -
 vm_core.h            |  4 ++--
 4 files changed, 48 insertions(+), 12 deletions(-)

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>