select() not interrupted by signals

Thomas Wolff towo@towo.net
Sun Jan 13 13:14:00 GMT 2013


Am 12.01.2013 20:14, schrieb Christopher Faylor:
> On Sat, Jan 12, 2013 at 06:41:27PM +0100, Thomas Wolff wrote:
>> Am 11.01.2013 16:38, schrieb Christopher Faylor:
>>> On Fri, Jan 11, 2013 at 09:41:37AM +0100, Thomas Wolff wrote:
>>>> ...
>>> ...
>>> select() is not restartable like read() or write().
>>>
>>> That behavior should be fixed in the next snapshot.  If you are seeing
>>> something different than this then that is not fixed.
>> ...
>> Not sure what exactly you mean with "select is not restartable" -
> http://pubs.opengroup.org/onlinepubs/9699919799/functions/sigaction.html
>
> Look for "restart".
>
>> actually, that made me test again more deeply, and it seems you
>> interrupt select() now on every signal;
>> as I understood it should only get interrupted on a signal related to a
>> file descriptor for which the bit in the exceptfds vector is set...
>> I'll recheck that on Unix next week.
> I have standard test cases for select() which do not use the "exceptfds"
> field.  They are interrupted by a signal on both Linux and Cygwin.  I
> don't see anything in the Single Unix Specification or Linux man page
> which would indicate that signals are in any way related to exceptfds.
Right, I had obviously misinterpreted the meaning of that vector. Thanks 
for the references.
Current patch is fine, checked with Linux as well.
> Also:
>
> http://stackoverflow.com/questions/1342712/nix-select-and-exceptfds-errorfds-semantics

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list