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 11 years ago
- Status changed from Open to Assigned
Updated by usa (Usaku NAKAMURA) over 10 years ago
- Target version changed from 1.9.3 to 3.0
Updated by nobu (Nobuyoshi Nakada) over 10 years ago
- Description updated (diff)
Updated by luislavena (Luis Lavena) over 9 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 9 years ago
It's natural.
Windows doesn't support non-blocking mode on other than sockets.
Updated by luislavena (Luis Lavena) over 9 years ago
- Status changed from Assigned to Rejected
Thank you nobu, this is a platform limitation then.