in reply to Re: Re: Re: Non-blocking pings on Win32
in thread Non-blocking pings on Win32

Well... I'll have to admit that I don't know the fundamental problem here, only the observed behaviour. I wrote some fork code that pinged a few thousand machines. When the pings timed out it appeared to be a blocking operation, since no other pings would occur until the timeout expired (i.e. the pings on other forked threads would just pause).

I tested the code on Linux and it worked perfectly, however on Win32 this blocking occurred, and the script was no quicker than a series of sequential pings. The advice I got at the time was that it was due to the way Net::Ping implemented its ICMP echo send/receive process.

The post by meetraz in this thread seems to contradict this theory, as it uses threads and Net::Ping. So the bottom line is that I don't know and would love for someone to conclusively explain it!

I'd prefer not to use Cygwin when I can use ActivePerl. Cygwin has its uses, but I prefer using a 'pure' Win32 version of Perl on Win32 :) I do have a Linux box I could run this on, however I find it easier to access SMB shares via UNC from Win32. But that's going to be the subject of my next post...

Cheers,

Gordon.

  • Comment on Re: Re: Re: Re: Non-blocking pings on Win32