From b11b690d3f36d552091423293489f845090efb4f Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Thu, 29 Aug 2013 00:54:09 +0000 Subject: [PATCH] [lit] Put display lock inside the ThreadResultsConsumer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189553 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/lit/lit/main.py | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/utils/lit/lit/main.py b/utils/lit/lit/main.py index 0a7347beb26..29275ac34a7 100755 --- a/utils/lit/lit/main.py +++ b/utils/lit/lit/main.py @@ -22,23 +22,9 @@ class TestingProgressDisplay: self.opts = opts self.numTests = numTests self.current = None - self.lock = threading.Lock() self.progressBar = progressBar self.completed = 0 - def update(self, test): - # Avoid locking overhead in quiet mode - if self.opts.quiet and not test.result.code.isFailure: - self.completed += 1 - return - - # Output lock. - self.lock.acquire() - try: - self.handleUpdate(test) - finally: - self.lock.release() - def finish(self): if self.progressBar: self.progressBar.clear() @@ -47,13 +33,14 @@ class TestingProgressDisplay: elif self.opts.succinct: sys.stdout.write('\n') - def handleUpdate(self, test): + def update(self, test): self.completed += 1 if self.progressBar: self.progressBar.update(float(self.completed)/self.numTests, test.getFullName()) - if self.opts.succinct and not test.result.code.isFailure: + if not test.result.code.isFailure and \ + (self.opts.quiet or self.opts.succinct): return if self.progressBar: @@ -129,9 +116,14 @@ class Tester(object): class ThreadResultsConsumer(object): def __init__(self, display): self.display = display + self.lock = threading.Lock() def update(self, test_index, test): - self.display.update(test) + self.lock.acquire() + try: + self.display.update(test) + finally: + self.lock.release() def taskFinished(self): pass