mirror of
https://github.com/NixOS/nix.git
synced 2025-02-19 18:32:36 +00:00
processGraph(): Don't throw ThreadPoolShutDown if there is an exception
Fixes $ nix copy --derivation --to /tmp/nix /nix/store/... error: cannot enqueue a work item while the thread pool is shutting down The ThreadPoolShutDown exception was hiding the reason for the thread pool shut down, e.g. error: cannot add path '/nix/store/03sl46khd8gmjpsad7223m32ma965vy9-fix-static.patch' because it lacks a signature by a trusted key
This commit is contained in:
parent
bcb92a5fa0
commit
a8c69cc907
@ -150,8 +150,16 @@ void processGraph(
|
||||
}
|
||||
};
|
||||
|
||||
for (auto & node : nodes)
|
||||
pool.enqueue(std::bind(worker, std::ref(node)));
|
||||
for (auto & node : nodes) {
|
||||
try {
|
||||
pool.enqueue(std::bind(worker, std::ref(node)));
|
||||
} catch (ThreadPoolShutDown &) {
|
||||
/* Stop if the thread pool is shutting down. It means a
|
||||
previous work item threw an exception, so process()
|
||||
below will rethrow it. */
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
pool.process();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user