diff options
author | eldritch horrors <pennae@lix.systems> | 2024-08-25 13:41:56 +0200 |
---|---|---|
committer | eldritch horrors <pennae@lix.systems> | 2024-08-30 10:18:28 +0000 |
commit | a5c1e73fa8e004a93e37254a3582ba91048c4550 (patch) | |
tree | 7788396907f8108a413eec22623ee01737cfb54d /src/libstore/build/goal.hh | |
parent | bb161a96cf1171a5c4ed3661a0f2f5a93ac10804 (diff) |
libstore: add "is dependency" info to goal
whether goal errors are reported via the `ex` member or just printed to
the log depends on whether the goal is a toplevel goal or a dependency.
if goals are aware of this themselves we can move error printing out of
the worker loop, and since a running worker can only be used by running
goals it's totally sufficient to keep a `Worker::running` flag for this
Change-Id: I6b5cbe6eccee1afa5fde80653c4b968554ddd16f
Diffstat (limited to 'src/libstore/build/goal.hh')
-rw-r--r-- | src/libstore/build/goal.hh | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/libstore/build/goal.hh b/src/libstore/build/goal.hh index 1bfea8231..1f25fb233 100644 --- a/src/libstore/build/goal.hh +++ b/src/libstore/build/goal.hh @@ -61,6 +61,13 @@ struct Goal Worker & worker; /** + * Whether this goal is only a dependency of other goals. Toplevel + * goals that are also dependencies of other toplevel goals do not + * set this, only goals that are exclusively dependencies do this. + */ + const bool isDependency; + + /** * Goals that this goal is waiting for. */ Goals waitees; @@ -143,8 +150,9 @@ public: */ std::shared_ptr<Error> ex; - explicit Goal(Worker & worker) + explicit Goal(Worker & worker, bool isDependency) : worker(worker) + , isDependency(isDependency) { } virtual ~Goal() noexcept(false) |