From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3188 invoked by alias); 25 Mar 2015 11:32:10 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 3171 invoked by uid 89); 25 Mar 2015 11:32:10 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Wed, 25 Mar 2015 11:32:04 +0000 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id t2PBW341031902 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for ; Wed, 25 Mar 2015 07:32:03 -0400 Received: from blade.nx (ovpn-116-111.ams2.redhat.com [10.36.116.111]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t2PBW2uu013735; Wed, 25 Mar 2015 07:32:02 -0400 Received: by blade.nx (Postfix, from userid 1000) id 92424264107; Wed, 25 Mar 2015 11:32:01 +0000 (GMT) Date: Wed, 25 Mar 2015 11:32:00 -0000 From: Gary Benson To: Pedro Alves Cc: gdb-patches@sourceware.org Subject: [pushed] [PATCH v2] Associate target_ops with target_fileio file descriptors Message-ID: <20150325113201.GA8977@blade.nx> References: <20150318184538.GA32134@blade.nx> <1426867612-32278-1-git-send-email-gbenson@redhat.com> <5511651F.4050400@redhat.com> <20150324161752.GA10601@blade.nx> <551192A0.3070107@redhat.com> <551196FA.7020702@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <551196FA.7020702@redhat.com> X-IsSubscribed: yes X-SW-Source: 2015-03/txt/msg00825.txt.bz2 Pedro Alves wrote: > Because there's no point in starting the next lookup at the > handle we just opened if we're reusing a slot, either. And > then that allows getting rid of the VEC_address, by simply > doing that increment at the end: > > /* Index into fileio_fhandles of the lowest handle that might be > closed. This permits handle reuse without searching the whole list > each time a new file is opened. */ > static int lowest_closed_fd = 0; > > static int > acquire_fileio_fd (struct target_ops *t, int fd) > { > fileio_fh_t *fh, buf; > > gdb_assert (!is_closed_fileio_fh (fd)); > > /* Search for closed handles to reuse. */ > for (; > VEC_iterate (fileio_fh_t, fileio_fhandles, > lowest_closed_fd, fh); > lowest_closed_fd++) > if (is_closed_fileio_fh (fh->fd)) > break; > > /* Push a new handle if no closed handles were found. */ > if (lowest_closed_fd == VEC_length (fileio_fh_t, fileio_fhandles)) > fh = VEC_safe_push (fileio_fh_t, fileio_fhandles, NULL); > > /* Fill in the handle. */ > fh->t = t; > fh->fd = fd; > > /* Return its index, and start the next lookup at > the next index. */ > return lowest_closed_fd++; > } That's nice, I pushed that one, thanks! Gary -- http://gbenson.net/