diff options
author | 2014-05-29 20:14:48 +0000 | |
---|---|---|
committer | 2014-05-29 20:14:48 +0000 | |
commit | 39e8d93337c7e37d2b09dc710a05a9beefef5c2c (patch) | |
tree | 4698434f439e248887ed732ce445ca036edb16b3 /dm/DMReporter.cpp | |
parent | 97de357270e54be53acb17e1cb4b4d5e25bacc01 (diff) |
DM tweaks
- Don't print status updates for skipped tasks or count them as pending tasks.
- Refactor DMReporter a bit for better symmetry, be more explicit about
how we read atomics (that is, approximately) in printStatus() (née finish()).
- Remove mutex locking from printStatus().
BUG=skia:
R=halcanary@google.com, mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/309483003
git-svn-id: http://skia.googlecode.com/svn/trunk@14977 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'dm/DMReporter.cpp')
-rw-r--r-- | dm/DMReporter.cpp | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/dm/DMReporter.cpp b/dm/DMReporter.cpp index 4bb25d349d..0bc77bd573 100644 --- a/dm/DMReporter.cpp +++ b/dm/DMReporter.cpp @@ -1,5 +1,6 @@ #include "DMReporter.h" +#include "SkDynamicAnnotations.h" #include "SkCommandLineFlags.h" #include "OverwriteLine.h" @@ -8,18 +9,17 @@ DEFINE_bool2(verbose, v, false, "If true, print status updates one-per-line."); namespace DM { -void Reporter::finish(SkString name, SkMSec timeMs) { - sk_atomic_inc(&fFinished); - +void Reporter::printStatus(SkString name, SkMSec timeMs) const { if (FLAGS_quiet) { return; } + // It's okay if these are a little off---they're just for show---so we can read unprotectedly. + const int32_t failed = SK_ANNOTATE_UNPROTECTED_READ(fFailed); + const int32_t pending = SK_ANNOTATE_UNPROTECTED_READ(fPending) - 1; + SkString status; - status.printf("%s%d tasks left", - FLAGS_verbose ? "\n" : kSkOverwriteLine, - this->started() - this->finished()); - const int failed = this->failed(); + status.printf("%s%d tasks left", FLAGS_verbose ? "\n" : kSkOverwriteLine, pending); if (failed > 0) { status.appendf(", %d failed", failed); } @@ -29,12 +29,9 @@ void Reporter::finish(SkString name, SkMSec timeMs) { SkDebugf("%s", status.c_str()); } -int32_t Reporter::failed() const { - SkAutoMutexAcquire reader(&fMutex); - return fFailures.count(); -} - void Reporter::fail(SkString msg) { + sk_atomic_inc(&fFailed); + SkAutoMutexAcquire writer(&fMutex); fFailures.push_back(msg); } |