Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <03c201c2dc3b$723e1e50$c67486d9@webdev> From: "Elfyn McBratney" To: "cygwin" , "Eric Mandel" References: <200302241923 DOT h1OJN2N19746 AT head-cfa DOT cfa DOT harvard DOT edu> Subject: Re: connect() not interrupted by sigalrm? Date: Mon, 24 Feb 2003 19:30:24 -0000 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 > 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/