> -----Original Message-----
> From: Michael Hale [mailto:michael / halefamilysite.com] 
> Sent: Wednesday, December 03, 2003 2:35 PM
> To: ruby-talk ML
> Subject: c extension troubles on windows
> 
> 
> Hi ruby extension geeks, and thanks in advance for your help.
> 
> The short version of the issue that I am struggling with is 
> that I have 
> a native library I created a ruby extension for.  The extension works 
> on linux, but on windows it does not.
> 
> I have copies of the library I am extending for both windows 
> and linux 
> from our vendor (Spirent).  I am using gcc on linux and MSVC.NET on 
> windows.  Everything compiles and links without complaining.
> 
> On both windows and linux I am able to successfully execute 
> the method 
> "ETGetLibVersion" which gives me back the library version.  I 
> run into 
> trouble on windows when I try to call "ETSocketLink".  On linux this 
> call connects and returns as I would expect, however on windows it 
> connects and blocks.  For example when I do a printf before and after 
> this call I only get output from the first printf and I have to kill 
> the process to get my cursor back.

IIRC, sockets on Windows are blocking by default, so without seeing the
code for ETSocketLink() itself, I couldn't say more.

Non-blocking I/O on Win32 has always been a pain from what I've read.  I
recommend searching around on the comp.os.ms-windows.programmer.*
newsgroups to see what they have to say on the subject (or the docs on
msdn.com).

Regards,

Dan