diff options
author | eldritch horrors <pennae@lix.systems> | 2024-03-04 07:40:17 +0100 |
---|---|---|
committer | eldritch horrors <pennae@lix.systems> | 2024-03-04 07:40:17 +0100 |
commit | 8f5d0d4c05f8f3d1553b0527af5306010f0ada44 (patch) | |
tree | f97bc54665f7dee13cef8e18deb4814f8669731e /src/libstore | |
parent | 137673de5610ce20d03a0a79e242eb64a5c0f615 (diff) |
Merge pull request #9687 from edolstra/withFramedSink-ctrl-c-hang
withFramedSink(): Receive interrupts on the stderr thread
(cherry picked from commit 965cfe96886c988c3aa94bfc7fefdd37325f4536)
Change-Id: I8320a96957c01ec0e3450d1b3ae38a3baff78d49
Diffstat (limited to 'src/libstore')
-rw-r--r-- | src/libstore/build/substitution-goal.cc | 2 | ||||
-rw-r--r-- | src/libstore/remote-store.cc | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/src/libstore/build/substitution-goal.cc b/src/libstore/build/substitution-goal.cc index 93867007d..e77772f96 100644 --- a/src/libstore/build/substitution-goal.cc +++ b/src/libstore/build/substitution-goal.cc @@ -217,6 +217,8 @@ void PathSubstitutionGoal::tryToRun() thr = std::thread([this]() { try { + ReceiveInterrupts receiveInterrupts; + /* Wake up the worker loop when we're done. */ Finally updateStats([this]() { outPipe.writeSide.close(); }); diff --git a/src/libstore/remote-store.cc b/src/libstore/remote-store.cc index dda119809..2f4933577 100644 --- a/src/libstore/remote-store.cc +++ b/src/libstore/remote-store.cc @@ -1071,6 +1071,7 @@ void RemoteStore::ConnectionHandle::withFramedSink(std::function<void(Sink & sin std::thread stderrThread([&]() { try { + ReceiveInterrupts receiveInterrupts; processStderr(nullptr, nullptr, false); } catch (...) { ex = std::current_exception(); |