Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , 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" To: 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 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit 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" To: 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