diff options
| -rw-r--r-- | libs/ultrahdr/jpegr.cpp | 4 |
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() { |