Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Message-ID: From: Heribert Dahms To: "'Phil Dempster'" , cygwin AT cygwin DOT com Subject: RE: Cygwin 1.3.3: Win2K: select() returning EBADF (causes thrashi ng in Boa) Date: Fri, 21 Sep 2001 22:46:38 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain Hi Phil, your first mail contains the following snippet from boa: if (select(OPEN_MAX, &block_read_fdset, Check if the actual value of OPEN_MAX is larger than fdset can hold, which may well be platform dependent. Most efficient would be to use highest_used_fd+1, if this is handy, or else I'll cite Richard Stevens' famous book "Advanced Programming in the Unix Environment" (must have IMHO): "We could just set the first argument to FD_SETSIZE ..." at the bottom of p398 in the 7th printing 1994. Bye, Heribert (heribert_dahms AT icon-gmbh DOT de) > -----Original Message----- > From: Phil Dempster [SMTP:dempster AT lsil DOT com] > Sent: Friday, September 21, 2001 09:55 > To: cygwin AT cygwin DOT com > Subject: Re: Cygwin 1.3.3: Win2K: select() returning EBADF (causes > thrashing in Boa) > > > The obvious question is why is boa sending a bad fd to select? > > My apologies; I omitted to mention that the behaviour differs from the > same > code compiled under Linux, where select() correctly blocks. > > As far as I can determine, there is nothing wrong with the file > descriptor. > Both block_read_fdset and block_write_fdset are zeroed at initialisation > (using the FD_ZERO macro). The server's listening socket is set (using > FD_SET) in block_read_fdset. select() does not block and returns > immediately with errno==EBADF. > > > What thoughts were you expecting? You obviously need to debug the code. > > I was wondering if there any known issues with the Cygwin implementation > of > select(), given that the underlying Microsoft Winsock function does not > map > entirely cleanly to the Berkley implementation. Your response indicates > that there are no known issues ;-) > > Cheers, > Phil. > -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/