summaryrefslogtreecommitdiff
path: root/vcl/osx
diff options
context:
space:
mode:
authorChris Sherlock <chris.sherlock79@gmail.com>2017-03-18 19:58:53 +1100
committerChris Sherlock <chris.sherlock79@gmail.com>2017-03-19 05:26:50 +0000
commit2667435ea5e6b73e58e57703b6fc3896e87eb370 (patch)
tree27bfdcd59e28819e644cc6a8c475a1637d5df713 /vcl/osx
parent96a9b38db5fd9c21bffe4274fa7d5083d4bc2ee9 (diff)
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@libreoffice.org> Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
Diffstat (limited to 'vcl/osx')
-rw-r--r--vcl/osx/salinst.cxx11
1 files changed, 5 insertions, 6 deletions
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 );
}