I'm writing a cross-platform Ruby 1.9.2 app using Qt4 via the qtbindings gem. I'm using a QSocketNotifier to read newline-delimited data from a persistent connection, and it's functioning as expected on Linux and OS X. However, the activated() signal never seems to be firing when I test on my 64-bit Windows 7 machine.<div>
<br></div><div>The code which sets up the notifier is here: <a href="http://pastebin.com/Hn9MKGqm">http://pastebin.com/Hn9MKGqm</a></div><div><br></div><div>In this case, "client" is a Client object I wrote. Client#read is simply "@sock.gets".</div>
<div><br></div><div>I've tried this with and without the "socket.enabled = true/false" at the start/end of the block. Other signals are firing successfully, including the one that triggers the event which reads input from a text box and sends it to the server! I have verified on the server side that the client is writing to it successfully. However, that activated() block just never happens.</div>
<div><br></div><div>My only current hunch is that perhaps Ruby sockets are not implemented with the WinSock API on Windows, which I read somewhere is required for usage with QSocketNotifier. If that's the case, I'm not sure what ought to be used instead. At first I thought this was some kind of thread scheduling problem, but since other events are working as expected, that seems unlikely.</div>
<div><br></div><div>Any ideas?</div><div><br></div><div> - Max</div>