Bug #5954
closedIO.read_nonblock on IO.pipe generates Errno::EBADF (MinGW)
Description
=begin
Originally posted in [ruby-core:42103]:
The following example seems not to work under Windows:
r, w = IO.pipe
w.write "awesome" * 10
puts r.read_nonblock(8)
r.close
w.close
C:\Users\Luis>ruby -v t.rb
ruby 1.9.3p0 (2011-10-30) [i386-mingw32]
t.rb:5:in read_nonblock': Bad file descriptor (Errno::EBADF) from t.rb:5:in
'
What is not clear is that using StringIO works:
require "stringio"
b = StringIO.new
b.write "awesome" * 10
b.rewind
puts b.read_nonblock(8)
b.close
C:\Users\Luis>ruby -v t2.rb
ruby 1.9.3p0 (2011-10-30) [i386-mingw32]
awesomea
Perhaps pipes are not open properly? Is this supported under Windows?
=end
Updated by shyouhei (Shyouhei Urabe) almost 13 years ago
- Status changed from Open to Assigned
Updated by usa (Usaku NAKAMURA) over 12 years ago
- Target version changed from 1.9.3 to 3.0
Updated by nobu (Nobuyoshi Nakada) over 12 years ago
- Description updated (diff)
Updated by luislavena (Luis Lavena) over 11 years ago
Hello usa, nobu.
I've hit this issue with several project again.
Can you confirm or reject if this failure is intended or a bug? That way I can decide jump into the code or not (as IO is not my strongest field)
Thank you.
Updated by nobu (Nobuyoshi Nakada) over 11 years ago
It's natural.
Windows doesn't support non-blocking mode on other than sockets.
Updated by luislavena (Luis Lavena) over 11 years ago
- Status changed from Assigned to Rejected
Thank you nobu, this is a platform limitation then.