www.delorie.com/archives/browse.cgi | search |
Mailing-List: | contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm |
List-Subscribe: | <mailto:cygwin-developers-subscribe AT sources DOT redhat DOT com> |
List-Archive: | <http://sources.redhat.com/ml/cygwin-developers/> |
List-Post: | <mailto:cygwin-developers AT sources DOT redhat DOT com> |
List-Help: | <mailto:cygwin-developers-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs> |
Sender: | cygwin-developers-owner AT sources DOT redhat DOT com |
Delivered-To: | mailing list cygwin-developers AT sources DOT redhat DOT com |
Message-ID: | <009601c13e6d$c4466670$0200a8c0@lifelesswks> |
From: | "Robert Collins" <robert DOT collins AT itdomain DOT com DOT au> |
To: | <cygwin-developers AT cygwin DOT com> |
References: | <20010915234433 DOT A30407 AT redhat DOT com> |
Subject: | Re: possible explanation for make hang |
Date: | Sun, 16 Sep 2001 15:09:29 +1000 |
MIME-Version: | 1.0 |
X-Priority: | 3 |
X-MSMail-Priority: | Normal |
X-Mailer: | Microsoft Outlook Express 5.50.4133.2400 |
X-MimeOLE: | Produced By Microsoft MimeOLE V5.50.4133.2400 |
X-OriginalArrivalTime: | 16 Sep 2001 04:56:10.0035 (UTC) FILETIME=[E6F56830:01C13E6B] |
----- Original Message ----- From: "Christopher Faylor" <cgf AT redhat DOT com> To: <cygwin-developers AT cygwin DOT com> Sent: Sunday, September 16, 2001 1:44 PM Subject: possible explanation for make hang > I don't know precisely what make is doing but it is possible that > if more than one program is attempting to read from the same pipe > there will be a race that will cause cygwin to block in an uninterruptible > read. So, if something like a SIGCHLD comes in while cygwin is reading > a pipe it won't be possible to deal with it. I'm not aware of any > way to interrupt a blocking read on a pipe so cygwin will hang until > something shows up on the pipe. Can we wait on the pipe and a signal event? Ie == HANDLE handles[2]; handles[0] = signalevent; handles[1] = pipe; dword rc = WaitForMultipleObjects (2, handles, FALSE, INFINITE); if ((rc - WAIT_OBJECT_0) == 1) ReadFile (pipe); else handle_signal; /* the pipe may also have data, but can check again once the signal is handled*/ == > I just had this happen to me after 57 iterations of make in the winsup > directory. The stack traces of the affected makes seemed to indicate > that this is what is happening. > > I *really* wish I knew of another way to deal with interrupting reads > than the kludge that is now in use but I don't. > > I thought I had a promising lead a few weeks ago but the Windows API > stood staunchly in my path, as usual. What was that? Perhaps a brain storm could find something? Rob
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |