diff options
-rw-r--r-- | bitbake/lib/bb/cooker.py | 3 | ||||
-rw-r--r-- | bitbake/lib/bb/siggen.py | 11 |
2 files changed, 13 insertions, 1 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 1124332186..a05630d52d 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
@@ -1940,7 +1940,8 @@ class Parser(multiprocessing.Process): | |||
1940 | except IndexError: | 1940 | except IndexError: |
1941 | break | 1941 | break |
1942 | result = self.parse(*job) | 1942 | result = self.parse(*job) |
1943 | 1943 | # Clear the siggen cache after parsing to control memory usage, its huge | |
1944 | bb.parse.siggen.postparsing_clean_cache() | ||
1944 | try: | 1945 | try: |
1945 | self.results.put(result, timeout=0.25) | 1946 | self.results.put(result, timeout=0.25) |
1946 | except queue.Full: | 1947 | except queue.Full: |
diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py index ffd8fcaf36..c2d0c736cf 100644 --- a/bitbake/lib/bb/siggen.py +++ b/bitbake/lib/bb/siggen.py | |||
@@ -51,6 +51,9 @@ class SignatureGenerator(object): | |||
51 | def finalise(self, fn, d, varient): | 51 | def finalise(self, fn, d, varient): |
52 | return | 52 | return |
53 | 53 | ||
54 | def postparsing_clean_cache(self): | ||
55 | return | ||
56 | |||
54 | def get_unihash(self, tid): | 57 | def get_unihash(self, tid): |
55 | return self.taskhash[tid] | 58 | return self.taskhash[tid] |
56 | 59 | ||
@@ -188,6 +191,14 @@ class SignatureGeneratorBasic(SignatureGenerator): | |||
188 | for task in taskdeps: | 191 | for task in taskdeps: |
189 | d.setVar("BB_BASEHASH_task-%s" % task, self.basehash[fn + ":" + task]) | 192 | d.setVar("BB_BASEHASH_task-%s" % task, self.basehash[fn + ":" + task]) |
190 | 193 | ||
194 | def postparsing_clean_cache(self): | ||
195 | # | ||
196 | # After parsing we can remove some things from memory to reduce our memory footprint | ||
197 | # | ||
198 | self.gendeps = {} | ||
199 | self.lookupcache = {} | ||
200 | self.taskdeps = {} | ||
201 | |||
191 | def rundep_check(self, fn, recipename, task, dep, depname, dataCache): | 202 | def rundep_check(self, fn, recipename, task, dep, depname, dataCache): |
192 | # Return True if we should keep the dependency, False to drop it | 203 | # Return True if we should keep the dependency, False to drop it |
193 | # We only manipulate the dependencies for packages not in the whitelist | 204 | # We only manipulate the dependencies for packages not in the whitelist |