Actions
Bug #15367
openIO.select is not resumed when io-object gets closed
Bug #15367: IO.select is not resumed when io-object gets closed
Description
Here is sample code:
rp, wp = IO.pipe t2 = Thread.new { IO.select([rp]) } # This also does not work: # t2 = Thread.new { IO.select([rp], nil, [rp]) } sleep 0.01 rp.close t2 # => #<Thread:0x00000000089b6ce0@(pry):51 sleep> It happens only on linux, tested with 2.5.1, 2.6.0-preview2. On macOS it gives error, as expected:
#<Thread:0x00007fab3aebce58@(pry):5 run> terminated with exception (report_on_exception is true): Traceback (most recent call last): 1: from (pry):5:in `block in <main>' (pry):5:in `select': Bad file descriptor (Errno::EBADF) > t2 => #<Thread:0x00007fab3aebce58@(pry):5 dead> Actions