summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2012-11-17 19:16:34 +0000
committerLars Wirzenius <liw@liw.fi>2012-11-17 19:16:34 +0000
commit1cf5c435d93996ac2378c090f7632afc3100a21c (patch)
tree38f674adff7eebbd594334237e4b1984028dae5b
parent3f7848d192d5c1d0167471b3c7a562758fb95a73 (diff)
downloadobnam-1cf5c435d93996ac2378c090f7632afc3100a21c.tar.gz
Put larch fsck work items into queue
-rw-r--r--obnamlib/plugins/fsck_plugin.py15
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)