diff options
author | Lars Wirzenius <liw@liw.fi> | 2012-11-17 19:16:34 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2012-11-17 19:16:34 +0000 |
commit | 1cf5c435d93996ac2378c090f7632afc3100a21c (patch) | |
tree | 38f674adff7eebbd594334237e4b1984028dae5b | |
parent | 3f7848d192d5c1d0167471b3c7a562758fb95a73 (diff) | |
download | obnam-1cf5c435d93996ac2378c090f7632afc3100a21c.tar.gz |
Put larch fsck work items into queue
-rw-r--r-- | obnamlib/plugins/fsck_plugin.py | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/obnamlib/plugins/fsck_plugin.py b/obnamlib/plugins/fsck_plugin.py index 28c88713..b23f8bca 100644 --- a/obnamlib/plugins/fsck_plugin.py +++ b/obnamlib/plugins/fsck_plugin.py @@ -245,9 +245,8 @@ class CheckBTree(WorkItem): vfs=self.repo.fs) fsck = larch.fsck.Fsck(forest, self.warning, self.error, self.settings['fsck-fix']) - fsck.find_work() - for work in fsck.work: - work.do() + for work in fsck.find_work(): + yield work class CheckRepository(WorkItem): @@ -310,8 +309,10 @@ class FsckPlugin(obnamlib.ObnamPlugin): work = self.work_items.pop() logging.debug('doing: %s' % str(work)) self.app.ts['item'] = work - for more in reversed(list(work.do() or [])): - self.add_item(more, append=True) + self.app.ts.flush() + pos = len(self.work_items) + for more in work.do() or []: + self.add_item(more, pos=pos) i += 1 if not self.work_items: for work in final_items: @@ -328,7 +329,7 @@ class FsckPlugin(obnamlib.ObnamPlugin): if self.errors: sys.exit(1) - def add_item(self, work, append=False): + def add_item(self, work, append=False, pos=0): work.warning = self.warning work.error = self.error work.repo = self.repo @@ -339,7 +340,7 @@ class FsckPlugin(obnamlib.ObnamPlugin): else: self.work_items.insert(0, work) self.app.ts.increase('items', 1) - self.app.dump_memory_profile('after adding %s' % repr(work)) + self.app.ts.flush() def error(self, msg): self.app.ts.error(msg) |