aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoreldritch horrors <pennae@lix.systems>2024-07-20 21:05:19 +0200
committereldritch horrors <pennae@lix.systems>2024-07-22 19:01:40 +0000
commitd70e045f90e8b41b5b9f1fa0777d98eed64afb17 (patch)
tree4f99b600f0a96451e786fcc21c4b22df89559595 /src
parent20f53346df1e0150e4cbfd1b07023e511c277546 (diff)
libstore: remove Goal::ecBusy
this should be an optional. "busy" is not an *exit* code! Change-Id: Ic231cb27b022312b1a7a7b9602f32845b7a9c934
Diffstat (limited to 'src')
-rw-r--r--src/libstore/build/goal.cc3
-rw-r--r--src/libstore/build/goal.hh4
-rw-r--r--src/libstore/build/worker.cc4
3 files changed, 5 insertions, 6 deletions
diff --git a/src/libstore/build/goal.cc b/src/libstore/build/goal.cc
index f8db98280..2704fc6ab 100644
--- a/src/libstore/build/goal.cc
+++ b/src/libstore/build/goal.cc
@@ -79,8 +79,7 @@ void Goal::waiteeDone(GoalPtr waitee, ExitCode result)
void Goal::amDone(ExitCode result, std::optional<Error> ex)
{
trace("done");
- assert(exitCode == ecBusy);
- assert(result == ecSuccess || result == ecFailed || result == ecNoSubstituters || result == ecIncompleteClosure);
+ assert(!exitCode.has_value());
exitCode = result;
if (ex) {
diff --git a/src/libstore/build/goal.hh b/src/libstore/build/goal.hh
index 5b755c275..058c8add8 100644
--- a/src/libstore/build/goal.hh
+++ b/src/libstore/build/goal.hh
@@ -53,7 +53,7 @@ enum struct JobCategory {
struct Goal : public std::enable_shared_from_this<Goal>
{
- typedef enum {ecBusy, ecSuccess, ecFailed, ecNoSubstituters, ecIncompleteClosure} ExitCode;
+ typedef enum {ecSuccess, ecFailed, ecNoSubstituters, ecIncompleteClosure} ExitCode;
/**
* Backlink to the worker.
@@ -96,7 +96,7 @@ struct Goal : public std::enable_shared_from_this<Goal>
/**
* Whether the goal is finished.
*/
- ExitCode exitCode = ecBusy;
+ std::optional<ExitCode> exitCode;
protected:
/**
diff --git a/src/libstore/build/worker.cc b/src/libstore/build/worker.cc
index ea342da3b..f1f024ff6 100644
--- a/src/libstore/build/worker.cc
+++ b/src/libstore/build/worker.cc
@@ -414,7 +414,7 @@ void Worker::waitForInput()
GoalPtr goal = j->goal.lock();
assert(goal);
- if (goal->exitCode == Goal::ecBusy &&
+ if (!goal->exitCode.has_value() &&
0 != settings.maxSilentTime &&
j->respectTimeouts &&
after - j->lastOutput >= std::chrono::seconds(settings.maxSilentTime))
@@ -425,7 +425,7 @@ void Worker::waitForInput()
continue;
}
- else if (goal->exitCode == Goal::ecBusy &&
+ else if (!goal->exitCode.has_value() &&
0 != settings.buildTimeout &&
j->respectTimeouts &&
after - j->timeStarted >= std::chrono::seconds(settings.buildTimeout))