libstore: always wake up goals on EOF

all goals do this. it makes no sense to not notify a goal of EOF
conditions because this is the universal signal for "child done"

Change-Id: Ic3980de312547e616739c57c6248a8e81308b5ee
This commit is contained in:
eldritch horrors 2024-07-25 18:05:42 +02:00
parent 6c0dcd1220
commit d9af753a7f
7 changed files with 1 additions and 15 deletions

View file

@ -1363,7 +1363,6 @@ void DerivationGoal::handleChildOutput(int fd, std::string_view data)
void DerivationGoal::handleEOF(int fd)
{
if (!currentLogLine.empty()) flushLine();
worker.wakeUp(shared_from_this());
}

View file

@ -162,10 +162,5 @@ void DrvOutputSubstitutionGoal::work()
(this->*state)();
}
void DrvOutputSubstitutionGoal::handleEOF(int fd)
{
worker.wakeUp(shared_from_this());
}
}

View file

@ -72,7 +72,6 @@ public:
std::string key() override;
void work() override;
void handleEOF(int fd) override;
JobCategory jobCategory() const override {
return JobCategory::Substitution;

View file

@ -145,7 +145,6 @@ public:
virtual void handleEOF(int fd)
{
abort();
}
void trace(std::string_view s);

View file

@ -294,12 +294,6 @@ void PathSubstitutionGoal::handleChildOutput(int fd, std::string_view data)
}
void PathSubstitutionGoal::handleEOF(int fd)
{
worker.wakeUp(shared_from_this());
}
void PathSubstitutionGoal::cleanup()
{
try {

View file

@ -110,7 +110,6 @@ public:
* Callback used by the worker to write to the log.
*/
void handleChildOutput(int fd, std::string_view data) override;
void handleEOF(int fd) override;
/* Called by destructor, can't be overridden */
void cleanup() override final;

View file

@ -459,6 +459,7 @@ void Worker::waitForInput()
if (rd == 0 || (rd == -1 && errno == EIO)) {
debug("%1%: got EOF", goal->getName());
goal->handleEOF(k);
wakeUp(goal);
j->fds.erase(k);
} else if (rd == -1) {
if (errno != EINTR)