X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Date: Wed, 19 Oct 2011 16:49:10 +0200 From: Corinna Vinschen To: cygwin AT cygwin DOT com Subject: Re: Question about Cygwin's select() Message-ID: <20111019144910.GB16351@calimero.vinschen.de> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <4E9ED08B DOT 3080503 AT cornell DOT edu> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <4E9ED08B.3080503@cornell.edu> User-Agent: Mutt/1.5.21 (2010-09-15) Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: 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 On Oct 19 09:28, Ken Brown wrote: > I'm trying to debug an emacs problem, and I'm running into something > I don't understand involving Cygwin's select. I'll try to make an > STC if necessary, but I thought I'd start with a verbal description > in case there's an easy answer. Here's the situation: > > emacs creates a subprocess running gdb and sends a bunch of commands > to gdb without immediately reading the resulting output. emacs then > goes into a loop in which it waits for keyboard input and > periodically calls select to check for output from subprocesses. > The first call to select has a 30 second timeout and *always* fails > with EINTR. As a result, emacs doesn't read the output from gdb > right away and doesn't properly initialize the gdb buffer. > Subsequent calls to select sometimes succeed and sometimes fail. > When I'm running emacs under gdb and stepping through it, the buffer > eventually gets initialized. When I'm running emacs outside of gdb, > the buffer doesn't get initialized until I press Return. > > I have a simple workaround for this, but I'd like to be sure there > isn't some underlying bug that I'm masking with the workaround. So > my question is this: Is there some reason that I should expect that > first call to select to consistently fail with EINTR, or might this > indicate a bug? > > I realize that it might not be possible to answer the question based > on the information I've provided, but I thought it was worth a try. Some details are missing like the objects used to communicate with GDB. Does Emacs use a pseudo tty or a pipe? Is that with Cygwin from CVS or with 1.7.9? And what's your workaround? The EINTR sounds weird. A testcase would be most helpful. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple