Likewise, IO.copy_stream also fails to detect cross-thread
IO#close because it does not use waiting_fd infrastructure
in rb_thread_io_blocking_region.

```
r, w = IO.pipe
th = Thread.new do
  begin
    IO.copy_stream(r, '/dev/null')
  rescue => e
    warn [ e.class, e.message ].inspect
  end
end
sleep 0.1
r.close
th.join
```

Should I change IO.copy_stream and IO.select to avoid
stuck threads in these cases?

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