public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] portage r10769 - main/trunk/pym/_emerge
@ 2008-06-24  5:52 Zac Medico (zmedico)
  0 siblings, 0 replies; only message in thread
From: Zac Medico (zmedico) @ 2008-06-24  5:52 UTC (permalink / raw
  To: gentoo-commits

Author: zmedico
Date: 2008-06-24 05:52:48 +0000 (Tue, 24 Jun 2008)
New Revision: 10769

Modified:
   main/trunk/pym/_emerge/__init__.py
Log:
Clear dbapi caches just after deleting the depgraph in action_build().
This trims down the heap size by a few megs, for bug #229069.


Modified: main/trunk/pym/_emerge/__init__.py
===================================================================
--- main/trunk/pym/_emerge/__init__.py	2008-06-24 01:00:47 UTC (rev 10768)
+++ main/trunk/pym/_emerge/__init__.py	2008-06-24 05:52:48 UTC (rev 10769)
@@ -20,6 +20,7 @@
 except KeyboardInterrupt:
 	sys.exit(1)
 
+import gc
 import os, stat
 import platform
 
@@ -8739,6 +8740,8 @@
 				time.sleep(3) # allow the parent to have first fetch
 			mymergelist = mydepgraph.altlist()
 			del mydepgraph
+			clear_caches(trees)
+
 			retval = mergetask.merge(mymergelist, favorites, mtimedb)
 			merge_count = mergetask.curval
 		else:
@@ -8780,6 +8783,8 @@
 			pkglist = mydepgraph.altlist()
 			mydepgraph.saveNomergeFavorites()
 			del mydepgraph
+			clear_caches(trees)
+
 			mergetask = MergeTask(settings, trees, myopts)
 			retval = mergetask.merge(pkglist, favorites, mtimedb)
 			merge_count = mergetask.curval
@@ -8903,6 +8908,14 @@
 		settings = trees[myroot]["vartree"].settings
 		settings.validate()
 
+def clear_caches(trees):
+	for d in trees.itervalues():
+		d["porttree"].dbapi.melt()
+		d["porttree"].dbapi._aux_cache.clear()
+		d["bintree"].dbapi._aux_cache.clear()
+		d["bintree"].dbapi._clear_cache()
+	gc.collect()
+
 def load_emerge_config(trees=None):
 	kwargs = {}
 	for k, envvar in (("config_root", "PORTAGE_CONFIGROOT"), ("target_root", "ROOT")):

-- 
gentoo-commits@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-06-24  5:53 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-24  5:52 [gentoo-commits] portage r10769 - main/trunk/pym/_emerge Zac Medico (zmedico)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox