From: Graham B. <gb...@po...> - 2001-08-01 17:39:52
|
On Wed, Aug 01, 2001 at 06:29:53PM +0100, Chris Ridd wrote: > Graham Barr <gb...@po...> wrote: > > Thats interesting to note. > > > > However what is happening in this case is that select is stating it is > > ready for reading, but the first sysread after that is returning zero. > > > > That normally means the server has closed the connection. But I find it > > strange that it would do that without first responding to the bind > > request. > > > > Graham. > > Hm, we have observed select behaving oddly on different versions of Windows > here. > > The problem we had was that we were calling WSAEventSelect after we got a > success from WSAWaitForMultipleEvents. On some versions of Winsock (like in > '95, and NT with SP 4 or higher) this doesn't work because the event code > is edge triggered, whereas previous SPs were edge triggered. In other > words, the behaviour post SP4 was that 'I told you about the socket once, I > won't tell you again.' > > So if sysread is checking for events itself, this might explain the problem. > > I wouldn't be at all surprised if things like Cygwin modified how perl's > I/O worked. > > Could this therefore be a problem in the NT port of perl? I cannot really answer that as I know little about NT. So this really needs to be put before the win32 people on perl5-porters. If anyone knows how to reliably reproduce the problem, I suggest they sent a description to per...@pe... Graham. |