From: Carl Hetherington Date: Mon, 4 Nov 2019 19:44:13 +0000 (+0100) Subject: Add some new Waker calls. X-Git-Tag: v2.14.14~1 X-Git-Url: https://git.carlh.net/gitweb/?a=commitdiff_plain;h=fe64650ae5496c4de73894b97c53e6951ac3548f;p=dcpomatic.git Add some new Waker calls. Backported from 052ec34bd487a3645013e87a7062738284d050df in v2.15.x --- diff --git a/src/lib/encode_server.cc b/src/lib/encode_server.cc index 16c65dba7..314f8f68d 100644 --- a/src/lib/encode_server.cc +++ b/src/lib/encode_server.cc @@ -326,6 +326,9 @@ EncodeServer::handle (shared_ptr socket) { boost::mutex::scoped_lock lock (_mutex); + Waker waker; + waker.nudge (); + /* Wait until the queue has gone down a bit */ while (_queue.size() >= _worker_threads.size() * 2 && !_terminate) { _full_condition.wait (lock); diff --git a/src/lib/ffmpeg_encoder.cc b/src/lib/ffmpeg_encoder.cc index 07b691956..3f5b6f591 100644 --- a/src/lib/ffmpeg_encoder.cc +++ b/src/lib/ffmpeg_encoder.cc @@ -119,6 +119,8 @@ FFmpegEncoder::go () job->sub (_("Encoding")); } + Waker waker; + list reel_periods = _film->reels (); list::const_iterator reel = reel_periods.begin (); list::iterator encoder = _file_encoders.begin (); @@ -155,6 +157,8 @@ FFmpegEncoder::go () job->set_progress (float(i.get()) / _film->length().get()); } + waker.nudge (); + _butler->get_audio (interleaved, audio_frames); /* XXX: inefficient; butler interleaves and we deinterleave again */ float* p = interleaved;