Project

General

Profile

Actions

Bug #15367

open

IO.select is not resumed when io-object gets closed

Bug #15367: IO.select is not resumed when io-object gets closed

Added by printercu (Max Melentiev) almost 7 years ago. Updated almost 7 years ago.

Status:
Open
Assignee:
-
Target version:
-
[ruby-core:90226]
Tags:

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

Also available in: PDF Atom