Daniel Berger
2008-Mar-21 17:30 UTC
[Win32utils-devel] Fwd: Is select() untrustworthy on Windows when used with handles from popen3?
Any ideas? Dan ---------- Forwarded message ---------- From: Steve Shreeve <steve.shreeve at gmail.com> Date: Thu, Mar 13, 2008 at 10:51 AM Subject: Is select() untrustworthy on Windows when used with handles from popen3? To: djberg96 at gmail.com Dan, Thanks for your work on the win32util modules. I''ve created an expect-like library that allows one to easily script interactions with non-GUI applications. Everything works great when connecting to the target system using a socket, or using PTY.spawn on Linux. On Windows, I get quite a bit of grief. Here''s an example that has me confused: d:\>irb irb(main):001:0> require ''win32/open3'' => true irb(main):002:0> i,o,e = Open3.popen3(''date'') => [#<IO:0x2b42a4c>, #<IO:0x2b42a24>, #<IO:0x2b42a10>, 3164] irb(main):003:0> o.sysread(70) => "The current date is: Thu 03/13/2008 \nEnter the new date: (mm-dd-yy) " irb(main):004:0> select([o],nil,nil,1) => [[#<IO:0x2b42a24>], [], []] irb(main):005:0> o.sysread(1) # => here, it hangs... even though it *says* there''s input to read ]= Since we hang at this spot, I''m sorta hosed... how can I trust select()? Steve = ps - I''d be happy to pay for your time to assist with this.