[Libreoffice-commits] core.git: include/osl vcl/inc vcl/osx

Chris Sherlock chris.sherlock79 at gmail.com
Sun Mar 19 05:27:12 UTC 2017


 include/osl/conditn.hxx |    5 +++++
 vcl/inc/osx/salinst.h   |    4 ++--
 vcl/osx/salinst.cxx     |   11 +++++------
 3 files changed, 12 insertions(+), 8 deletions(-)

New commits:
commit 2667435ea5e6b73e58e57703b6fc3896e87eb370
Author: Chris Sherlock <chris.sherlock79 at gmail.com>
Date:   Sat Mar 18 19:58:53 2017 +1100

    vcl: have AcquaSalInstance use osl::Condition instead of oslCondition
    
    Condition is deprecated already, but there is no need for the
    AcquaSalInstance class to use the low-level C-API, when in fact there
    is a C++ fascade that calls on this via the C++ abstraction,
    osl::Condition.
    
    This will make it much easier to switch to using std::condition_variable
    in the future.
    
    Change-Id: Ic495c4120a59480bf50a8c5b73608874fc4228ea
    Reviewed-on: https://gerrit.libreoffice.org/35392
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Chris Sherlock <chris.sherlock79 at gmail.com>

diff --git a/include/osl/conditn.hxx b/include/osl/conditn.hxx
index bc96e2f4d0f5..07d697948077 100644
--- a/include/osl/conditn.hxx
+++ b/include/osl/conditn.hxx
@@ -28,6 +28,11 @@
 
 #include <osl/conditn.h>
 
+#if defined(MACOSX) && defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES)
+#   if __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES == 1
+#       undef check
+#   endif
+#endif
 
 namespace osl
 {
diff --git a/vcl/inc/osx/salinst.h b/vcl/inc/osx/salinst.h
index 151fea94a4dd..6570ab32a7e2 100644
--- a/vcl/inc/osx/salinst.h
+++ b/vcl/inc/osx/salinst.h
@@ -24,7 +24,7 @@
 #include <list>
 
 #include <comphelper/solarmutex.hxx>
-#include <osl/conditn.h>
+#include <osl/conditn.hxx>
 #include <osl/thread.hxx>
 
 #ifdef MACOSX
@@ -73,7 +73,7 @@ public:
     int                                     mnActivePrintJobs;
     std::list< SalUserEvent >               maUserEvents;
     osl::Mutex                              maUserEventListMutex;
-    oslCondition                            maWaitingYieldCond;
+    osl::Condition                          maWaitingYieldCond;
 
     static std::list<const ApplicationEvent*> aAppEventList;
 
diff --git a/vcl/osx/salinst.cxx b/vcl/osx/salinst.cxx
index 84cc198fcdcf..53b529e0b67e 100644
--- a/vcl/osx/salinst.cxx
+++ b/vcl/osx/salinst.cxx
@@ -349,6 +349,7 @@ void DestroySalInstance( SalInstance* pInst )
 
 AquaSalInstance::AquaSalInstance()
  : maUserEventListMutex()
+ , maWaitingYieldCond()
 {
     mpSalYieldMutex = new SalYieldMutex;
     mpSalYieldMutex->acquire();
@@ -356,7 +357,6 @@ AquaSalInstance::AquaSalInstance()
     maMainThread = osl::Thread::getCurrentIdentifier();
     mbWaitingYield = false;
     mnActivePrintJobs = 0;
-    maWaitingYieldCond = osl_createCondition();
 }
 
 AquaSalInstance::~AquaSalInstance()
@@ -364,7 +364,6 @@ AquaSalInstance::~AquaSalInstance()
     ::comphelper::SolarMutex::setSolarMutex( nullptr );
     mpSalYieldMutex->release();
     delete mpSalYieldMutex;
-    osl_destroyCondition( maWaitingYieldCond );
 }
 
 void AquaSalInstance::wakeupYield()
@@ -600,7 +599,7 @@ SalYieldResult AquaSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents
         if( aEvent.mpFrame && AquaSalFrame::isAlive( aEvent.mpFrame ) )
         {
             aEvent.mpFrame->CallCallback( aEvent.mnType, aEvent.mpData );
-            osl_setCondition( maWaitingYieldCond );
+            maWaitingYieldCond.set();
             // return if only one event is asked for
             if( ! bHandleAllCurrentEvents )
                 return SalYieldResult::EVENT;
@@ -683,17 +682,17 @@ SAL_WNODEPRECATED_DECLARATIONS_POP
                 (*it)->maInvalidRect.SetEmpty();
             }
         }
-        osl_setCondition( maWaitingYieldCond );
+        maWaitingYieldCond.set();
     }
     else if( bWait )
     {
         // #i103162#
         // wait until any thread (most likely the main thread)
         // has dispatched an event, cop out at 200 ms
-        osl_resetCondition( maWaitingYieldCond );
+        maWaitingYieldCond.reset();
         TimeValue aVal = { 0, 200000000 };
         sal_uLong nCount = ReleaseYieldMutex();
-        osl_waitCondition( maWaitingYieldCond, &aVal );
+        maWaitingYieldCond.wait( &aVal );
         AcquireYieldMutex( nCount );
     }
 


More information about the Libreoffice-commits mailing list