This is the mail archive of the
mailing list for the Cygwin project.
Re: connect() not interrupted by sigalrm?
- From: Eric Mandel <eric at head-cfa dot harvard dot edu>
- To: "Elfyn McBratney" <elfyn-cygwin at exposure dot org dot uk>, cygwin at cygwin dot com
- Cc: eric at head-cfa dot cfa dot harvard dot edu
- Date: Mon, 24 Feb 2003 14:23:02 -0500
- Subject: Re: connect() not interrupted by sigalrm?
> I believe I have found the problem. In order for your program to work as
> expected you will need SA_INTERRUPT , which is not defined in
> /usr/include/sys/signal.h . So it just laggs until it gets to the "Network
> unreachable" error. I'm not to sure the reason why it's not there (?).
The SA_INTERRUPT flag was used by older systems such as Solaris 2.4,
where, contrary to current expectations, all interrupted system calls
were automatically restarted. On those systems, if you set the
SA_INTERRUPT flag, the call would not be restarted, giving the
behavior we now expect. (i.e. its behavior is the opposite of the
SA_RESTART flag that we ordinarily use now to ensure restart of an
interrupted system call. See Stevens Unix Network Programming, p. 121).
So unless this is the official answer, I am doubtful that this is the
actual problem, since by default, connect() should be interrupted by
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html