summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/ultrahdr/jpegr.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/libs/ultrahdr/jpegr.cpp b/libs/ultrahdr/jpegr.cpp
index 0f7aa27354..ef927e3c56 100644
--- a/libs/ultrahdr/jpegr.cpp
+++ b/libs/ultrahdr/jpegr.cpp
@@ -534,7 +534,7 @@ bool JobQueue::dequeueJob(size_t& rowStart, size_t& rowEnd) {
if (mQueuedAllJobs) {
return false;
} else {
- mCv.wait(lock);
+ mCv.wait_for(lock, std::chrono::milliseconds(100));
}
} else {
auto it = mJobs.begin();
@@ -557,6 +557,8 @@ void JobQueue::enqueueJob(size_t rowStart, size_t rowEnd) {
void JobQueue::markQueueForEnd() {
std::unique_lock<std::mutex> lock{mMutex};
mQueuedAllJobs = true;
+ lock.unlock();
+ mCv.notify_all();
}
void JobQueue::reset() {