This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Latest poll() hangs again (was Re: poll() bugs and patch)


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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]