summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/osl/conditn.hxx5
-rw-r--r--vcl/inc/osx/salinst.h4
-rw-r--r--vcl/osx/salinst.cxx11
3 files changed, 12 insertions, 8 deletions
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 );
}