delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2001/09/21/16:47:34

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT sources DOT redhat DOT com
Delivered-To: mailing list cygwin AT sources DOT redhat DOT com
Message-ID: <BF35D9C143BCCC4EB63181B67C9320C804DE6D@serv-075.icon-germany.local>
From: Heribert Dahms <heribert_dahms AT icon-scm DOT com>
To: "'Phil Dempster'" <dempster AT lsil DOT com>, 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)

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/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019