Gentoo Archives: gentoo-portage-dev

From: Jason Stubbs <jstubbs@g.o>
To: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] PATCH: gentoolkit: Make portage.config object a global object
Date: Tue, 20 Sep 2005 23:47:21
Message-Id: 200509210846.39915.jstubbs@gentoo.org
In Reply to: Re: [gentoo-portage-dev] PATCH: gentoolkit: Make portage.config object a global object by Paul Varner
1 On Wednesday 21 September 2005 02:37, Paul Varner wrote:
2 > On Fri, 2005-09-16 at 11:59 -0500, Paul Varner wrote:
3 > > http://bugs.gentoo.org/show_bug.cgi?id=90680
4 > >
5 > > Author: Paul Varner
6 > >
7 > > The current implementation of gentoolkit creates a portage.config
8 > > object for every package object that it creates. While this is the
9 > > correct thing to do from an object-oriented programming point of view,
10 > > this implementation consumes an excessive amount of memory and CPU.
11 > > The proposed patch changes the portage.config object for each package
12 > > object to point to a single global object.
13 >
14 > Updated patch to add a semaphore to control access to the global
15 > portage.config object. Unless anyone sees any other issues with this
16 > patch, I will be placing it into gentoolkit.
17
18 Is the settingslock created in __init__.py accessible in package.py? It may
19 just be another gem of python I didn't know about, but wouldn't it be not
20 available from that scope?
21
22 Also, the calling of self._settings.reset() would be a big performance hit.
23 setcpv() does almost nothing if the per-package settings of the passed cpv
24 are identical to those of the previous. reset() on the other hand restacks
25 all configuration every time.
26
27 --
28 Jason Stubbs

Replies