| 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 |