| Index: dm/DMReporter.cpp
|
| diff --git a/dm/DMReporter.cpp b/dm/DMReporter.cpp
|
| index 4bb25d349dffe193b853c1b3481ef9177db824ac..0bc77bd573adad4e3f221d76179613fb5e7d8272 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);
|
| }
|
|
|