1 |
Author: zmedico |
2 |
Date: 2008-06-24 05:52:48 +0000 (Tue, 24 Jun 2008) |
3 |
New Revision: 10769 |
4 |
|
5 |
Modified: |
6 |
main/trunk/pym/_emerge/__init__.py |
7 |
Log: |
8 |
Clear dbapi caches just after deleting the depgraph in action_build(). |
9 |
This trims down the heap size by a few megs, for bug #229069. |
10 |
|
11 |
|
12 |
Modified: main/trunk/pym/_emerge/__init__.py |
13 |
=================================================================== |
14 |
--- main/trunk/pym/_emerge/__init__.py 2008-06-24 01:00:47 UTC (rev 10768) |
15 |
+++ main/trunk/pym/_emerge/__init__.py 2008-06-24 05:52:48 UTC (rev 10769) |
16 |
@@ -20,6 +20,7 @@ |
17 |
except KeyboardInterrupt: |
18 |
sys.exit(1) |
19 |
|
20 |
+import gc |
21 |
import os, stat |
22 |
import platform |
23 |
|
24 |
@@ -8739,6 +8740,8 @@ |
25 |
time.sleep(3) # allow the parent to have first fetch |
26 |
mymergelist = mydepgraph.altlist() |
27 |
del mydepgraph |
28 |
+ clear_caches(trees) |
29 |
+ |
30 |
retval = mergetask.merge(mymergelist, favorites, mtimedb) |
31 |
merge_count = mergetask.curval |
32 |
else: |
33 |
@@ -8780,6 +8783,8 @@ |
34 |
pkglist = mydepgraph.altlist() |
35 |
mydepgraph.saveNomergeFavorites() |
36 |
del mydepgraph |
37 |
+ clear_caches(trees) |
38 |
+ |
39 |
mergetask = MergeTask(settings, trees, myopts) |
40 |
retval = mergetask.merge(pkglist, favorites, mtimedb) |
41 |
merge_count = mergetask.curval |
42 |
@@ -8903,6 +8908,14 @@ |
43 |
settings = trees[myroot]["vartree"].settings |
44 |
settings.validate() |
45 |
|
46 |
+def clear_caches(trees): |
47 |
+ for d in trees.itervalues(): |
48 |
+ d["porttree"].dbapi.melt() |
49 |
+ d["porttree"].dbapi._aux_cache.clear() |
50 |
+ d["bintree"].dbapi._aux_cache.clear() |
51 |
+ d["bintree"].dbapi._clear_cache() |
52 |
+ gc.collect() |
53 |
+ |
54 |
def load_emerge_config(trees=None): |
55 |
kwargs = {} |
56 |
for k, envvar in (("config_root", "PORTAGE_CONFIGROOT"), ("target_root", "ROOT")): |
57 |
|
58 |
-- |
59 |
gentoo-commits@l.g.o mailing list |