sw/source/core/docnode/retrievedinputstreamdata.cxx |   13 +++++--------
 sw/source/core/docnode/threadmanager.cxx            |   13 +++++++------
 sw/source/core/docnode/threadmanager.hxx            |    8 ++++----
 sw/source/core/inc/retrievedinputstreamdata.hxx     |    6 +++---
 4 files changed, 19 insertions(+), 21 deletions(-)

New commits:
commit 977e0bf1fc468976cf9b86df142807039623a71c
Author:     Noel Grandin <[email protected]>
AuthorDate: Tue Dec 21 17:32:48 2021 +0200
Commit:     Noel Grandin <[email protected]>
CommitDate: Sat Jan 1 13:14:20 2022 +0100

    osl::Mutex->std::mutex in ThreadManager
    
    Change-Id: I9a7ad88b77222c3419ab5eee0859ecc931d6b0aa
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127811
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <[email protected]>

diff --git a/sw/source/core/docnode/threadmanager.cxx 
b/sw/source/core/docnode/threadmanager.cxx
index 311c88e75a4d..20d71e746aea 100644
--- a/sw/source/core/docnode/threadmanager.cxx
+++ b/sw/source/core/docnode/threadmanager.cxx
@@ -71,7 +71,7 @@ oslInterlockedCount ThreadManager::AddThread(
                             const rtl::Reference< ObservableThread >& rThread )
 
 {
-    osl::MutexGuard aGuard(maMutex);
+    std::unique_lock aGuard(maMutex);
 
     // create new thread
     tThreadData aThreadData;
@@ -89,7 +89,7 @@ oslInterlockedCount ThreadManager::AddThread(
 
     // add thread to manager
     if ( maStartedThreads.size() < snStartedSize &&
-         !StartingOfThreadsSuspended() )
+         !mbStartingOfThreadsSuspended )
     {
         // Try to start thread
         if ( !StartThread( aThreadData ) )
@@ -116,7 +116,7 @@ void ThreadManager::RemoveThread( const oslInterlockedCount 
nThreadID,
                                   const bool bThreadFinished )
 {
     // --> SAFE ----
-    osl::MutexGuard aGuard(maMutex);
+    std::unique_lock aGuard(maMutex);
 
     std::deque< tThreadData >::iterator aIter =
                 std::find_if( maStartedThreads.begin(), maStartedThreads.end(),
@@ -143,6 +143,7 @@ void ThreadManager::RemoveThread( const oslInterlockedCount 
nThreadID,
         }
 
         // Try to start thread from waiting ones
+        aGuard.unlock();
         TryToStartNewThread( nullptr );
     }
     else
@@ -205,9 +206,9 @@ bool ThreadManager::StartThread( const tThreadData& 
rThreadData )
 
 IMPL_LINK_NOARG(ThreadManager, TryToStartNewThread, Timer *, void)
 {
-    osl::MutexGuard aGuard(maMutex);
+    std::unique_lock aGuard(maMutex);
 
-    if ( StartingOfThreadsSuspended() )
+    if ( mbStartingOfThreadsSuspended )
         return;
 
     // Try to start thread from waiting ones
@@ -225,7 +226,7 @@ IMPL_LINK_NOARG(ThreadManager, TryToStartNewThread, Timer 
*, void)
 
 void ThreadManager::ResumeStartingOfThreads()
 {
-    osl::MutexGuard aGuard(maMutex);
+    std::unique_lock aGuard(maMutex);
 
     mbStartingOfThreadsSuspended = false;
 
diff --git a/sw/source/core/docnode/threadmanager.hxx 
b/sw/source/core/docnode/threadmanager.hxx
index 87a3d8b0b93d..ace0bc03164b 100644
--- a/sw/source/core/docnode/threadmanager.hxx
+++ b/sw/source/core/docnode/threadmanager.hxx
@@ -20,7 +20,7 @@
 #pragma once
 
 #include <vcl/idle.hxx>
-#include <osl/mutex.hxx>
+#include <mutex>
 #include <osl/interlck.h>
 #include <rtl/ref.hxx>
 
@@ -79,7 +79,7 @@ class ThreadManager final
         */
         void SuspendStartingOfThreads()
         {
-            osl::MutexGuard aGuard(maMutex);
+            std::unique_lock aGuard(maMutex);
 
             mbStartingOfThreadsSuspended = true;
         }
@@ -90,7 +90,7 @@ class ThreadManager final
 
         bool StartingOfThreadsSuspended()
         {
-            osl::MutexGuard aGuard(maMutex);
+            std::unique_lock aGuard(maMutex);
 
             return mbStartingOfThreadsSuspended;
         }
@@ -111,7 +111,7 @@ class ThreadManager final
 
         static const std::deque< tThreadData >::size_type snStartedSize;
 
-        osl::Mutex maMutex;
+        std::mutex maMutex;
 
         css::uno::WeakReference< css::util::XJobManager > mrThreadJoiner;
 
commit 34b67c5cb3338c4bd72f42df99a4b79ca1588071
Author:     Noel Grandin <[email protected]>
AuthorDate: Tue Dec 21 17:40:11 2021 +0200
Commit:     Noel Grandin <[email protected]>
CommitDate: Sat Jan 1 13:14:06 2022 +0100

    osl::Mutex->std::mutex in SwRetrievedInputStreamDataManager
    
    drop the locking call in
    
        IMPL_LINK( SwRetrievedInputStreamDataManager, LinkedInputStreamReady
    
    because it doesn't actually touch any related data and the lock
    is taken in the call to PopData.
    
    Change-Id: I2e679b97a1ce36e7d39a9a2818a9d62fd53009a0
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127812
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <[email protected]>

diff --git a/sw/source/core/docnode/retrievedinputstreamdata.cxx 
b/sw/source/core/docnode/retrievedinputstreamdata.cxx
index 5612096c1fc4..311be07ca719 100644
--- a/sw/source/core/docnode/retrievedinputstreamdata.cxx
+++ b/sw/source/core/docnode/retrievedinputstreamdata.cxx
@@ -34,7 +34,7 @@ SwRetrievedInputStreamDataManager& 
SwRetrievedInputStreamDataManager::GetManager
 SwRetrievedInputStreamDataManager::tDataKey 
SwRetrievedInputStreamDataManager::ReserveData(
                         std::weak_ptr< 
SwAsyncRetrieveInputStreamThreadConsumer > const & pThreadConsumer )
 {
-    osl::MutexGuard aGuard(maMutex);
+    std::unique_lock aGuard(maMutex);
 
     // create empty data container for given thread Consumer
     tDataKey nDataKey( snNextKeyValue );
@@ -59,7 +59,7 @@ void SwRetrievedInputStreamDataManager::PushData(
         css::uno::Reference<css::io::XInputStream> const & xInputStream,
         const bool bIsStreamReadOnly )
 {
-    osl::MutexGuard aGuard(maMutex);
+    std::unique_lock aGuard(maMutex);
 
     std::map< tDataKey, tData >::iterator aIter = maInputStreamData.find( 
nDataKey );
 
@@ -88,7 +88,7 @@ void SwRetrievedInputStreamDataManager::PushData(
 bool SwRetrievedInputStreamDataManager::PopData( const tDataKey nDataKey,
                                                  tData& rData )
 {
-    osl::MutexGuard aGuard(maMutex);
+    std::unique_lock aGuard(maMutex);
 
     bool bDataProvided( false );
 
@@ -115,9 +115,8 @@ bool SwRetrievedInputStreamDataManager::PopData( const 
tDataKey nDataKey,
     #i73788#
     Note: This method has to be run in the main thread.
 */
-IMPL_LINK( SwRetrievedInputStreamDataManager,
-           LinkedInputStreamReady,
-           void*, p, void )
+IMPL_STATIC_LINK( SwRetrievedInputStreamDataManager, LinkedInputStreamReady,
+                  void*, p, void )
 {
     SwRetrievedInputStreamDataManager::tDataKey* pDataKey = 
static_cast<SwRetrievedInputStreamDataManager::tDataKey*>(p);
     if ( !pDataKey )
@@ -125,8 +124,6 @@ IMPL_LINK( SwRetrievedInputStreamDataManager,
         return;
     }
 
-    osl::MutexGuard aGuard(maMutex);
-
     SwRetrievedInputStreamDataManager& rDataManager =
                             SwRetrievedInputStreamDataManager::GetManager();
     SwRetrievedInputStreamDataManager::tData aInputStreamData;
diff --git a/sw/source/core/inc/retrievedinputstreamdata.hxx 
b/sw/source/core/inc/retrievedinputstreamdata.hxx
index 153bab8b1a0b..4a958b31bf19 100644
--- a/sw/source/core/inc/retrievedinputstreamdata.hxx
+++ b/sw/source/core/inc/retrievedinputstreamdata.hxx
@@ -21,7 +21,7 @@
 
 #include <tools/link.hxx>
 #include <sal/types.h>
-#include <osl/mutex.hxx>
+#include <mutex>
 #include <com/sun/star/uno/Reference.hxx>
 
 #include <map>
@@ -74,13 +74,13 @@ class SwRetrievedInputStreamDataManager
         bool PopData( const tDataKey nDataKey,
                       tData& rData );
 
-        DECL_LINK( LinkedInputStreamReady, void*, void );
+        DECL_STATIC_LINK( SwRetrievedInputStreamDataManager, 
LinkedInputStreamReady, void*, void );
 
     private:
 
         static tDataKey snNextKeyValue;
 
-        osl::Mutex maMutex;
+        std::mutex maMutex;
 
         std::map< tDataKey, tData > maInputStreamData;
 };

Reply via email to