Yet more waking (in hash computation).
authorCarl Hetherington <cth@carlh.net>
Mon, 4 Nov 2019 23:04:21 +0000 (00:04 +0100)
committerCarl Hetherington <cth@carlh.net>
Mon, 4 Nov 2019 23:04:21 +0000 (00:04 +0100)
src/lib/cross.cc
src/lib/cross.h
src/lib/writer.cc

index 1b83bad..dcd4ddf 100644 (file)
@@ -337,6 +337,7 @@ void
 Waker::nudge ()
 {
 #ifdef DCPOMATIC_WINDOWS
+       boost::mutex::scoped_lock lm (_mutex);
        SetThreadExecutionState (ES_SYSTEM_REQUIRED);
 #endif
 }
@@ -344,6 +345,7 @@ Waker::nudge ()
 Waker::Waker ()
 {
 #ifdef DCPOMATIC_OSX
+       boost::mutex::scoped_lock lm (_mutex);
        /* We should use this */
         // IOPMAssertionCreateWithName (kIOPMAssertionTypeNoIdleSleep, kIOPMAssertionLevelOn, CFSTR ("Encoding DCP"), &_assertion_id);
        /* but it's not available on 10.5, so we use this */
@@ -354,6 +356,7 @@ Waker::Waker ()
 Waker::~Waker ()
 {
 #ifdef DCPOMATIC_OSX
+       boost::mutex::scoped_lock lm (_mutex);
        IOPMAssertionRelease (_assertion_id);
 #endif
 }
index 4067631..6770946 100644 (file)
@@ -29,6 +29,7 @@
 #include <IOKit/pwr_mgt/IOPMLib.h>
 #endif
 #include <boost/filesystem.hpp>
+#include <boost/thread/mutex.hpp>
 
 #ifdef DCPOMATIC_WINDOWS
 #define WEXITSTATUS(w) (w)
@@ -74,6 +75,7 @@ public:
        void nudge ();
 
 private:
+       boost::mutex _mutex;
 #ifdef DCPOMATIC_OSX
        IOPMAssertionID _assertion_id;
 #endif
index 9153760..48f4033 100644 (file)
@@ -780,4 +780,7 @@ Writer::set_digest_progress (Job* job, float progress)
        }
 
        job->set_progress (min_progress);
+
+       Waker waker;
+       waker.nudge ();
 }