From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5291 invoked by alias); 29 Feb 2004 16:47:52 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 5283 invoked from network); 29 Feb 2004 16:47:51 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sources.redhat.com with SMTP; 29 Feb 2004 16:47:51 -0000 Received: from drow by nevyn.them.org with local (Exim 4.30 #1 (Debian)) id 1AxU6Y-00048y-NB for ; Sun, 29 Feb 2004 11:47:50 -0500 Date: Sun, 29 Feb 2004 16:47:00 -0000 From: Daniel Jacobowitz To: gdb-patches@sources.redhat.com Subject: Re: [patch/gdbserver] Handle early interrupts Message-ID: <20040229164750.GC15749@nevyn.them.org> Mail-Followup-To: gdb-patches@sources.redhat.com References: <20040228181359.GA16903@nevyn.them.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040228181359.GA16903@nevyn.them.org> User-Agent: Mutt/1.5.1i X-SW-Source: 2004-02/txt/msg00890.txt.bz2 On Sat, Feb 28, 2004 at 01:13:59PM -0500, Daniel Jacobowitz wrote: > This patch lets gdbserver start expecting control-C as soon as we begin > resuming threads, instead of as soon as we begin waiting. On slow targets, > especially if one of the threads is scheduled right after the PTRACE_CONT > and before gdbserver has finished waking its siblings, there can be a long > delay. Until this arbitrary, sometimes very long, delay has passed, any > control-C sent by the client will be ignored. The easy solution is to > enable, but block, SIGIO; then unblock it when we're ready and the OS > will automatically deliver it then. > > Will commit in a little while. Tested on arm-linux using gdbserver > (I've forgotten to mention that for the last few patches, but it's true of > all of them). > 2004-02-28 Daniel Jacobowitz > > * linux-low.c (linux_wait): Unblock async I/O. > (linux_resume): Block and enable async I/O. > * remote-utils.c (block_async_io, unblock_async_io): New functions. > * server.h (block_async_io, unblock_async_io): Add prototypes. Committed to HEAD. -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer