[bitbake-devel] [PATCH] cooker: bitbake memres server should not always reload the cache
Cristiana Voicu
cristiana.voicu at intel.com
Wed Mar 26 08:05:45 UTC 2014
Due to commit dd15648fc2654b8d7c3e00ea7ab3dbf04f24f24b, after an async
command is executed, the state of the server is set back to state.initial,
so the cache is always reloaded.
This patch adds a sanity check on the validity of the cache and then only
reload if something has changed.
depends_cache variable is needed in this case, so the del statement needs
to be removed.
[YOCTO #5603]
Signed-off-by: Cristiana Voicu <cristiana.voicu at intel.com>
---
bitbake/lib/bb/cache.py | 2 --
bitbake/lib/bb/cooker.py | 32 ++++++++++++++++++++++----------
2 files changed, 22 insertions(+), 12 deletions(-)
diff --git a/bitbake/lib/bb/cache.py b/bitbake/lib/bb/cache.py
index 318781b..da9ad5d 100644
--- a/bitbake/lib/bb/cache.py
+++ b/bitbake/lib/bb/cache.py
@@ -612,8 +612,6 @@ class Cache(object):
cache_class_name = cache_class.__name__
file_dict[cache_class_name].close()
- del self.depends_cache
-
@staticmethod
def mtime(cachefile):
return bb.parse.cached_mtime_noerror(cachefile)
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index 07202e3..c90bb44 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -1265,21 +1265,33 @@ class BBCooker:
raise bb.BBHandledException()
if self.state != state.parsing:
- self.parseConfiguration ()
+ check_cache = False
+ if self.parser:
+ self.parser.bb_cache.checked = set()
+ for filename in self.parser.filelist:
+ appends = self.collection.get_file_appends(filename)
+ if not self.parser.bb_cache.cacheValid(filename, appends):
+ check_cache = True
+ break
+ else:
+ check_cache = True
- ignore = self.data.getVar("ASSUME_PROVIDED", True) or ""
- self.recipecache.ignored_dependencies = set(ignore.split())
+ if check_cache:
+ self.parseConfiguration ()
+
+ ignore = self.data.getVar("ASSUME_PROVIDED", True) or ""
+ self.recipecache.ignored_dependencies = set(ignore.split())
- for dep in self.configuration.extra_assume_provided:
- self.recipecache.ignored_dependencies.add(dep)
+ for dep in self.configuration.extra_assume_provided:
+ self.recipecache.ignored_dependencies.add(dep)
- self.collection = CookerCollectFiles(self.recipecache.bbfile_config_priorities)
- (filelist, masked) = self.collection.collect_bbfiles(self.data, self.event_data)
+ self.collection = CookerCollectFiles(self.recipecache.bbfile_config_priorities)
+ (filelist, masked) = self.collection.collect_bbfiles(self.data, self.event_data)
- self.data.renameVar("__depends", "__base_depends")
+ self.data.renameVar("__depends", "__base_depends")
- self.parser = CookerParser(self, filelist, masked)
- self.state = state.parsing
+ self.parser = CookerParser(self, filelist, masked)
+ self.state = state.parsing
if not self.parser.parse_next():
collectlog.debug(1, "parsing complete")
--
1.7.9.5
More information about the bitbake-devel
mailing list