worker: respect C-c on sudo nix-build
While debugging something else I observed that latest `main` ignores `Control-C` on `sudo nix-build`. After reading through the capnproto docs, it seems as if the promise must be fulfilled to actually terminate the `promise.wait()` below. This also applies to scenarios such as stopping the client (`nix-build`), but the builders on the daemon-side are still running, i.e. closes #540 Co-authored-by: eldritch horrors <pennae@lix.systems> Change-Id: I9634d14df4909fc1b65d05654aad0309bcca8a0a
This commit is contained in:
@@ -239,7 +239,7 @@ Worker::Results Worker::run(std::function<Targets (GoalFactory &)> req)
|
||||
|
||||
auto onInterrupt = kj::newPromiseAndCrossThreadFulfiller<Result<Results>>();
|
||||
auto interruptCallback = createInterruptCallback([&] {
|
||||
return result::failure(std::make_exception_ptr(makeInterrupted()));
|
||||
onInterrupt.fulfiller->fulfill(result::failure(std::make_exception_ptr(makeInterrupted())));
|
||||
});
|
||||
|
||||
auto promise = runImpl(std::move(topGoals))
|
||||
|
||||
Reference in New Issue
Block a user