diff options
Diffstat (limited to 'bitbake/lib/bb/cache.py')
-rw-r--r-- | bitbake/lib/bb/cache.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/bitbake/lib/bb/cache.py b/bitbake/lib/bb/cache.py index b3c632b81c..fb02deb8ef 100644 --- a/bitbake/lib/bb/cache.py +++ b/bitbake/lib/bb/cache.py | |||
@@ -204,14 +204,31 @@ class Cache(object): | |||
204 | logger.info('Bitbake version mismatch, rebuilding...') | 204 | logger.info('Bitbake version mismatch, rebuilding...') |
205 | return | 205 | return |
206 | 206 | ||
207 | cachesize = os.fstat(cachefile.fileno()).st_size | ||
208 | bb.event.fire(bb.event.CacheLoadStarted(cachesize), self.data) | ||
209 | |||
210 | previous_percent = 0 | ||
207 | while cachefile: | 211 | while cachefile: |
208 | try: | 212 | try: |
209 | key = pickled.load() | 213 | key = pickled.load() |
210 | value = pickled.load() | 214 | value = pickled.load() |
211 | except Exception: | 215 | except Exception: |
212 | break | 216 | break |
217 | |||
213 | self.depends_cache[key] = value | 218 | self.depends_cache[key] = value |
214 | 219 | ||
220 | # only fire events on even percentage boundaries | ||
221 | current_progress = cachefile.tell() | ||
222 | current_percent = 100 * current_progress / cachesize | ||
223 | if current_percent > previous_percent: | ||
224 | previous_percent = current_percent | ||
225 | bb.event.fire(bb.event.CacheLoadProgress(current_progress), | ||
226 | self.data) | ||
227 | |||
228 | bb.event.fire(bb.event.CacheLoadCompleted(cachesize, | ||
229 | len(self.depends_cache)), | ||
230 | self.data) | ||
231 | |||
215 | @staticmethod | 232 | @staticmethod |
216 | def virtualfn2realfn(virtualfn): | 233 | def virtualfn2realfn(virtualfn): |
217 | """ | 234 | """ |