diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-08-17 19:23:54 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-08-17 19:23:54 +0000 |
commit | 249f75c929dcb1c62c982ca82e9853d45bae92db (patch) | |
tree | bce94552d9458b0b9c9ebea86b095bcfb5b3249b | |
parent | 9b59e3925a43a56280b54e12957fdf18fe0b187a (diff) | |
download | portage-249f75c929dcb1c62c982ca82e9853d45bae92db.tar.gz portage-249f75c929dcb1c62c982ca82e9853d45bae92db.tar.bz2 portage-249f75c929dcb1c62c982ca82e9853d45bae92db.zip |
Clear dbapi caches just after deleting the depgraph in action_build().
This trims down the heap size by a few megs, for bug #229069.
(trunk r10769)
svn path=/main/branches/2.1.2/; revision=11428
-rwxr-xr-x | bin/emerge | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/bin/emerge b/bin/emerge index 88e1b9478..51bcdcad6 100755 --- a/bin/emerge +++ b/bin/emerge @@ -20,6 +20,7 @@ try: except KeyboardInterrupt: sys.exit(1) +import gc import os, stat os.environ["PORTAGE_LEGACY_GLOBALS"] = "false" @@ -8654,6 +8655,8 @@ def action_build(settings, trees, mtimedb, 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: @@ -8695,6 +8698,8 @@ def action_build(settings, trees, mtimedb, 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 @@ -8817,6 +8822,14 @@ def validate_ebuild_environment(trees): 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")): |