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