This is the mail archive of the
cygwin@cygwin.com
mailing list for the Cygwin project.
Re: connect() not interrupted by sigalrm?
- From: "Elfyn McBratney" <elfyn-cygwin at exposure dot org dot uk>
- To: "cygwin" <cygwin at cygwin dot com>,"Eric Mandel" <eric at head-cfa dot harvard dot edu>
- Date: Mon, 24 Feb 2003 19:30:24 -0000
- Subject: Re: connect() not interrupted by sigalrm?
- References: <200302241923.h1OJN2N19746@head-cfa.cfa.harvard.edu>
> Thanks, Elfyn,
>
> > 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
> SIGALRM.
Ooops. I'm obviously showing my signal programming weakness' now. I'll shut
up ;-)
Regards,
Elfyn McBratney
elfyn at exposure dot org dot uk
www.exposure.org.uk
--
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/