diff options
Diffstat (limited to 'vcl/headless/svpinst.cxx')
-rw-r--r-- | vcl/headless/svpinst.cxx | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/vcl/headless/svpinst.cxx b/vcl/headless/svpinst.cxx index d5caadeefcaf..77b9ba580321 100644 --- a/vcl/headless/svpinst.cxx +++ b/vcl/headless/svpinst.cxx @@ -62,7 +62,7 @@ bool SvpSalInstance::isFrameAlive( const SalFrame* pFrame ) const SvpSalInstance* SvpSalInstance::s_pDefaultInstance = nullptr; -#ifndef ANDROID +#if !defined(ANDROID) && !defined(IOS) static void atfork_child() { @@ -82,11 +82,13 @@ SvpSalInstance::SvpSalInstance( SalYieldMutex *pMutex ) : m_aTimeout.tv_usec = 0; m_nTimeoutMS = 0; +#ifndef IOS m_pTimeoutFDS[0] = m_pTimeoutFDS[1] = -1; CreateWakeupPipe(true); +#endif if( s_pDefaultInstance == nullptr ) s_pDefaultInstance = this; -#ifndef ANDROID +#if !defined(ANDROID) && !defined(IOS) pthread_atfork(nullptr, nullptr, atfork_child); #endif } @@ -95,10 +97,13 @@ SvpSalInstance::~SvpSalInstance() { if( s_pDefaultInstance == this ) s_pDefaultInstance = nullptr; - +#ifndef IOS CloseWakeupPipe(true); +#endif } +#ifndef IOS + void SvpSalInstance::CloseWakeupPipe(bool log) { if (m_pTimeoutFDS[0] != -1) @@ -158,6 +163,8 @@ void SvpSalInstance::CreateWakeupPipe(bool log) } } +#endif + void SvpSalInstance::PostEvent(const SalFrame* pFrame, ImplSVEvent* pData, SalEvent nEvent) { { @@ -206,7 +213,9 @@ void SvpSalInstance::deregisterFrame( SalFrame* pFrame ) void SvpSalInstance::Wakeup() { +#ifndef IOS OSL_VERIFY(write (m_pTimeoutFDS[1], "", 1) == 1); +#endif } bool SvpSalInstance::CheckTimeout( bool bExecuteTimers ) |