From abc4f86e4ea1422944a9562275858040da5b4abe Mon Sep 17 00:00:00 2001 From: John Ericson Date: Fri, 29 Aug 2025 15:12:51 -0400 Subject: [PATCH] `DerivationBuildingGoal::tryToBuild` inline The resulting `goto` is not so nice, but it is still worth doing this so we can turn more fields into local variables. --- src/libstore/build/derivation-building-goal.cc | 8 +++----- .../include/nix/store/build/derivation-building-goal.hh | 1 - 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/libstore/build/derivation-building-goal.cc b/src/libstore/build/derivation-building-goal.cc index c72130142..d07beb9ec 100644 --- a/src/libstore/build/derivation-building-goal.cc +++ b/src/libstore/build/derivation-building-goal.cc @@ -201,11 +201,9 @@ Goal::Co DerivationBuildingGoal::gaveUpOnSubstitution(bool storeDerivation) slot to become available, since we don't need one if there is a build hook. */ co_await yield(); - co_return tryToBuild(); -} -Goal::Co DerivationBuildingGoal::tryToBuild() -{ +tryToBuild: + std::map initialOutputs; /* Recheck at this point. In particular, whereas before we were @@ -527,7 +525,7 @@ Goal::Co DerivationBuildingGoal::tryToBuild() if (curBuilds >= settings.maxBuildJobs) { outputLocks.unlock(); co_await waitForBuildSlot(); - co_return tryToBuild(); + goto tryToBuild; } if (!builder) { diff --git a/src/libstore/include/nix/store/build/derivation-building-goal.hh b/src/libstore/include/nix/store/build/derivation-building-goal.hh index 547e533e2..1f2a57d86 100644 --- a/src/libstore/include/nix/store/build/derivation-building-goal.hh +++ b/src/libstore/include/nix/store/build/derivation-building-goal.hh @@ -110,7 +110,6 @@ private: * The states. */ Co gaveUpOnSubstitution(bool storeDerivation); - Co tryToBuild(); /** * Is the build hook willing to perform the build?