Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Fri, 15 Mar 2002 16:33:21 -0500 From: Christopher Faylor To: cygwin AT cygwin DOT com Subject: Re: Latest poll() hangs again (was Re: poll() bugs and patch) Message-ID: <20020315213321.GA6540@redhat.com> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <20020313181423 DOT C29574 AT cygbert DOT vinschen DOT de> <20020314131554 DOT I29574 AT cygbert DOT vinschen DOT de> <20020315200120 DOT GA2484 AT tishler DOT net> <20020315221940 DOT J29574 AT cygbert DOT vinschen DOT de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20020315221940.J29574@cygbert.vinschen.de> User-Agent: Mutt/1.3.23.1i On Fri, Mar 15, 2002 at 10:19:40PM +0100, Corinna Vinschen wrote: >On Fri, Mar 15, 2002 at 03:01:21PM -0500, Jason Tishler wrote: >> On Thu, Mar 14, 2002 at 01:15:54PM +0100, Corinna Vinschen wrote: >> > Thanks for the patch. I've applied it with some changes. >> >> I was concerned when I first saw this patch. Unfortunately, I just >> tried it and my concerns were realized. >> >> This patch causes poll() to hang again when only an invalid file >> descriptor is specified. See the following for a test case: >> >> http://sources.redhat.com/ml/cygwin-patches/2001-q3/msg00109.html >> >> Please revert this patch or modify it so that poll() does not hang. > >I don't think reverting is the way to go. One of the problems >was that cygwin_select isn't called at all if all fd's are >invalid, even if a timeout value is given. Boris patch fixed >that. Unfortunately the problem you're describing is a border >case which wasn't handled correctly by your patch as well, AFAICS. >The correct solution would be to return immediately (aka >cygwin_select isn't called) only if all fd's are invalid AND >the timeout value is set to INFINITE (-1). > >Unfortunately SUSv2 doesn't handle that special case. That's >a pity. > >However, we could revert to handle invalid_fds again and then call >cygwin_select only if timeout != -1. > >Comments? Boris? Jason? Anybody else? How does linux handle these cases? cgf -- 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/