Kaydet (Commit) dfce9071 authored tarafından Tor Lillqvist's avatar Tor Lillqvist

Using the m_FeedbackFDs is now necessary also on iOS

Until recently we had managed without them on iOS, but that changed
with the recent "Unipoll" work, I think. (Without this change, the iOS
app now runs into assertion failures early on. But note that this
change is not enough to make it work fully again.)

Change-Id: I09d25326ba73ce897da5c91f30530f5b3d5fd272
üst 74264014
......@@ -73,9 +73,7 @@ SvpSalInstance::SvpSalInstance( SalYieldMutex *pMutex )
m_nTimeoutMS = 0;
m_MainThread = osl::Thread::getCurrentIdentifier();
#ifndef IOS
CreateWakeupPipe(true);
#endif
if( s_pDefaultInstance == nullptr )
s_pDefaultInstance = this;
#if !defined(ANDROID) && !defined(IOS)
......@@ -87,13 +85,9 @@ SvpSalInstance::~SvpSalInstance()
{
if( s_pDefaultInstance == this )
s_pDefaultInstance = nullptr;
#ifndef IOS
CloseWakeupPipe(true);
#endif
}
#ifndef IOS
void SvpSalInstance::CloseWakeupPipe(bool log)
{
SvpSalYieldMutex *const pMutex(dynamic_cast<SvpSalYieldMutex*>(mpSalYieldMutex.get()));
......@@ -149,8 +143,6 @@ void SvpSalInstance::CreateWakeupPipe(bool log)
}
}
#endif
void SvpSalInstance::TriggerUserEventProcessing()
{
Wakeup();
......@@ -332,11 +324,7 @@ void SvpSalYieldMutex::doAcquire(sal_uInt32 const nLockCount)
m_bNoYieldLock = true;
bool const bEvents = pInst->DoYield(false, request == SvpRequest::MainThreadDispatchAllEvents);
m_bNoYieldLock = false;
#ifdef IOS
(void)bEvents;
#else
write(m_FeedbackFDs[1], &bEvents, sizeof(bool));
#endif
}
}
while (true);
......@@ -496,11 +484,9 @@ bool SvpSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents)
: SvpRequest::MainThreadDispatchOneEvent);
bool bDidWork(false);
#ifndef IOS
// blocking read (for synchronisation)
auto const nRet = read(pMutex->m_FeedbackFDs[0], &bDidWork, sizeof(bool));
assert(nRet == 1); (void) nRet;
#endif
if (!bDidWork && bWait)
{
// block & release YieldMutex until the main thread does something
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment