framework/inc/helper/wakeupthread.hxx    |    9 ++++-----
 framework/source/helper/wakeupthread.cxx |   12 +++++++-----
 2 files changed, 11 insertions(+), 10 deletions(-)

New commits:
commit 95b7ecbbdb445a8f2408d1b0b3d32cb799d15568
Author:     Noel Grandin <noelgran...@gmail.com>
AuthorDate: Sat Dec 18 19:03:44 2021 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Mon Dec 20 09:25:41 2021 +0100

    osl::Mutex->std::mutex in WakeUpThread
    
    Change-Id: I469fa855eb373829f23232875669f607dcb0c6a6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127104
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/framework/inc/helper/wakeupthread.hxx 
b/framework/inc/helper/wakeupthread.hxx
index f9099180d03f..cdc8700a5266 100644
--- a/framework/inc/helper/wakeupthread.hxx
+++ b/framework/inc/helper/wakeupthread.hxx
@@ -23,8 +23,8 @@
 
 #include <com/sun/star/uno/Reference.hxx>
 #include <cppuhelper/weakref.hxx>
-#include <osl/conditn.hxx>
-#include <osl/mutex.hxx>
+#include <condition_variable>
+#include <mutex>
 #include <salhelper/thread.hxx>
 
 namespace com::sun::star::util
@@ -37,9 +37,8 @@ namespace framework
 class WakeUpThread final : public salhelper::Thread
 {
     css::uno::WeakReference<css::util::XUpdatable> updatable_;
-    osl::Condition condition_;
-
-    osl::Mutex mutex_;
+    std::condition_variable condition_;
+    std::mutex mutex_;
     bool terminate_;
 
     void execute() override;
diff --git a/framework/source/helper/wakeupthread.cxx 
b/framework/source/helper/wakeupthread.cxx
index 503f6707a010..556d59dbb581 100644
--- a/framework/source/helper/wakeupthread.cxx
+++ b/framework/source/helper/wakeupthread.cxx
@@ -25,13 +25,15 @@
 #include <osl/time.h>
 
 #include <helper/wakeupthread.hxx>
+#include <chrono>
+
+using namespace std::chrono_literals;
 
 void framework::WakeUpThread::execute() {
     for (;;) {
-        TimeValue t{0, 25000000}; // 25 msec
-        condition_.wait(&t);
         {
-            osl::MutexGuard g(mutex_);
+            std::unique_lock g(mutex_);
+            condition_.wait_for(g, 25ms, [this] { return terminate_; });
             if (terminate_) {
                 break;
             }
@@ -50,10 +52,10 @@ framework::WakeUpThread::WakeUpThread(
 
 void framework::WakeUpThread::stop() {
     {
-        osl::MutexGuard g(mutex_);
+        std::unique_lock g(mutex_);
         terminate_ = true;
     }
-    condition_.set();
+    condition_.notify_one();
     join();
 }
 

Reply via email to