[Libreoffice-commits] core.git: vcl/headless
Jan-Marek Glogowski (via logerrit)
logerrit at kemper.freedesktop.org
Tue Jun 22 10:29:29 UTC 2021
vcl/headless/svpinst.cxx | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
New commits:
commit b9ea3467383ccdfe4be842e61267256f281487ee
Author: Jan-Marek Glogowski <glogow at fbihome.de>
AuthorDate: Fri Jun 18 14:42:20 2021 +0200
Commit: Jan-Marek Glogowski <glogow at fbihome.de>
CommitDate: Tue Jun 22 12:28:48 2021 +0200
svp: always release SolarMutex on yield
Always give other threads a chance to acquire the SolarMutex, if
we yield.
Change-Id: I77d93374ea606acd1f7820755197a27655418639
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117454
Tested-by: Jenkins
Reviewed-by: Michael Meeks <michael.meeks at collabora.com>
Reviewed-by: Jan-Marek Glogowski <glogow at fbihome.de>
diff --git a/vcl/headless/svpinst.cxx b/vcl/headless/svpinst.cxx
index 700c6b87f645..36859e9b3fb2 100644
--- a/vcl/headless/svpinst.cxx
+++ b/vcl/headless/svpinst.cxx
@@ -490,7 +490,7 @@ bool SvpSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents)
else
nTimeoutMicroS = -1; // wait until something happens
- sal_uInt32 nAcquireCount = ReleaseYieldMutexAll();
+ SolarMutexReleaser aReleaser;
if (pSVData->mpPollCallback)
{
@@ -523,11 +523,12 @@ bool SvpSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents)
}
// here no need to check m_Request because Acquire will do it
}
- AcquireYieldMutex( nAcquireCount );
}
- else if (bSkipPoll)
+ else
{
- pMutex->m_NonMainWaitingYieldCond.set(); // wake up other threads
+ if (bSkipPoll)
+ pMutex->m_NonMainWaitingYieldCond.set(); // wake up other threads
+ SolarMutexReleaser aReleaser;
}
}
else // !IsMainThread()
@@ -544,9 +545,8 @@ bool SvpSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents)
{
// block & release YieldMutex until the main thread does something
pMutex->m_NonMainWaitingYieldCond.reset();
- sal_uInt32 nAcquireCount = ReleaseYieldMutexAll();
+ SolarMutexReleaser aReleaser;
pMutex->m_NonMainWaitingYieldCond.wait();
- AcquireYieldMutex( nAcquireCount );
}
}
More information about the Libreoffice-commits
mailing list