| Index: dm/DM.cpp
|
| diff --git a/dm/DM.cpp b/dm/DM.cpp
|
| index d4991ef312d0999d77ecbf12edc3675c78944081..708d8558f33fb28c63c1e76a3776b0861200ab9f 100644
|
| --- a/dm/DM.cpp
|
| +++ b/dm/DM.cpp
|
| @@ -45,13 +45,19 @@ static void fail(ImplicitString err) {
|
| static int32_t gPending = 0; // Atomic.
|
|
|
| static void done(double ms, ImplicitString config, ImplicitString src, ImplicitString name) {
|
| + int32_t pending = sk_atomic_dec(&gPending)-1;
|
| SkDebugf("%s(%4dMB %5d) %s\t%s %s %s ", FLAGS_verbose ? "\n" : kSkOverwriteLine
|
| , sk_tools::getMaxResidentSetSizeMB()
|
| - , sk_atomic_dec(&gPending)-1
|
| + , pending
|
| , HumanizeMs(ms).c_str()
|
| , config.c_str()
|
| , src.c_str()
|
| , name.c_str());
|
| + // We write our dm.json file every once in a while in case we crash.
|
| + // Notice this also handles the final dm.json when pending == 0.
|
| + if (pending % 500 == 0) {
|
| + JsonWriter::DumpJson();
|
| + }
|
| }
|
|
|
| /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
| @@ -450,8 +456,6 @@ int dm_main() {
|
| // At this point we're back in single-threaded land.
|
|
|
| SkDebugf("\n");
|
| - JsonWriter::DumpJson();
|
| -
|
| if (gFailures.count() > 0) {
|
| SkDebugf("Failures:\n");
|
| for (int i = 0; i < gFailures.count(); i++) {
|
|
|