summaryrefslogtreecommitdiffstats
path: root/pym/portage/dbapi/_MergeProcess.py
diff options
context:
space:
mode:
authorDavid James <davidjames@chromium.org>2011-05-09 21:11:47 -0700
committerZac Medico <zmedico@gentoo.org>2011-05-09 21:47:42 -0700
commit928bc527a8c3eab3784df54226df2f2d83c6c85c (patch)
tree78372e2d8c9c01fbe4050b87c1e35bf8c3e995b3 /pym/portage/dbapi/_MergeProcess.py
parent57b3d395aa582e798f008240ebd635fd0f269bed (diff)
downloadportage-928bc527a8c3eab3784df54226df2f2d83c6c85c.tar.gz
portage-928bc527a8c3eab3784df54226df2f2d83c6c85c.tar.bz2
portage-928bc527a8c3eab3784df54226df2f2d83c6c85c.zip
Cache counter values, avoiding I/O when it doesn't change.
This improves merge times by up to 25%, since looping over the vardb for each package install is slow. TEST=Emerge a bunch of packages, notice 25% speed improvement. BUG=chromium-os:15112 Change-Id: I51dd617219cd1820ceeb702291bd790990995be4
Diffstat (limited to 'pym/portage/dbapi/_MergeProcess.py')
-rw-r--r--pym/portage/dbapi/_MergeProcess.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/pym/portage/dbapi/_MergeProcess.py b/pym/portage/dbapi/_MergeProcess.py
index 12a0baf55..05f45d51a 100644
--- a/pym/portage/dbapi/_MergeProcess.py
+++ b/pym/portage/dbapi/_MergeProcess.py
@@ -143,6 +143,7 @@ class MergeProcess(SpawnProcess):
fd_pipes[elog_writer_fd] = elog_writer_fd
self._elog_reg_id = self.scheduler.register(elog_reader_fd,
self._registered_events, self._elog_output_handler)
+ counter = self.vartree.dbapi.counter_tick()
pid = os.fork()
if pid != 0:
@@ -196,7 +197,7 @@ class MergeProcess(SpawnProcess):
try:
rval = mylink.merge(self.pkgloc, self.infloc,
myebuild=self.myebuild, mydbapi=self.mydbapi,
- prev_mtimes=self.prev_mtimes)
+ prev_mtimes=self.prev_mtimes, counter=counter)
except SystemExit:
raise
except: