[pzstd] Fix deadlock in the case of errors
Fixes #720.
diff --git a/contrib/pzstd/Pzstd.cpp b/contrib/pzstd/Pzstd.cpp
index 1265b53..ae5d734 100644
--- a/contrib/pzstd/Pzstd.cpp
+++ b/contrib/pzstd/Pzstd.cpp
@@ -585,7 +585,10 @@
std::uint64_t bytesWritten = 0;
std::shared_ptr<BufferWorkQueue> out;
// Grab the output queue for each decompression job (in order).
- while (outs.pop(out) && !errorHolder.hasError()) {
+ while (outs.pop(out)) {
+ if (errorHolder.hasError()) {
+ continue;
+ }
if (!decompress) {
// If we are compressing and want to write skippable frames we can't
// start writing before compression is done because we need to know the