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.sherloc...@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 <c...@libreoffice.org> Reviewed-by: Chris Sherlock <chris.sherloc...@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 ); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits