diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2017-08-25T15·49+0200 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2017-08-25T15·49+0200 |
commit | c137c0a5ebc0d58c53f86986ab66967ac8629cbe (patch) | |
tree | 38e01bef5549985449a4c911c1444758d585335f /src/libstore/build.cc | |
parent | f194629f96d4bdbded897e7e88ac0d03211c959d (diff) |
Allow activities to be nested
In particular, this allows more relevant activities ("substituting X") to supersede inferior ones ("downloading X").
Diffstat (limited to 'src/libstore/build.cc')
-rw-r--r-- | src/libstore/build.cc | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc index 77dee2914677..cb67d7a6c144 100644 --- a/src/libstore/build.cc +++ b/src/libstore/build.cc @@ -2407,14 +2407,14 @@ struct BuilderLogger : Logger } void startActivity(ActivityId act, ActivityType type, - const std::string & s, const Fields & fields) override + const std::string & s, const Fields & fields, ActivityId parent) override { nlohmann::json json; json["action"] = "start"; json["id"] = act; json["type"] = type; json["text"] = s; - // FIXME: handle fields + // FIXME: handle fields, parent log(lvlError, "@nix " + json.dump()); } @@ -3313,7 +3313,7 @@ void DerivationGoal::flushLine() if (type == actDownload) builderActivities.emplace(std::piecewise_construct, std::forward_as_tuple(json["id"]), - std::forward_as_tuple(*logger, type, json["text"])); + std::forward_as_tuple(*logger, type, json["text"], Logger::Fields{}, act->id)); } else if (action == "stop") @@ -3655,6 +3655,9 @@ void SubstitutionGoal::tryToRun() /* Wake up the worker loop when we're done. */ Finally updateStats([this]() { outPipe.writeSide = -1; }); + Activity act(*logger, actSubstitute, "", Logger::Fields{storePath, sub->getUri()}); + PushActivity pact(act.id); + copyStorePath(ref<Store>(sub), ref<Store>(worker.store.shared_from_this()), storePath, repair); |