[*] A Linux and other OS insurance policy: rel/xref 7357764c

This commit is contained in:
Reece Wilson 2023-09-19 01:42:50 +01:00
parent 5a9292ad1a
commit 7477bfe56f

View File

@ -534,7 +534,10 @@ namespace Aurora::Threading::Primitives
{ {
auto pThat = this->GetFutexConditionWriter(); auto pThat = this->GetFutexConditionWriter();
AuAtomicAdd(pThat, 1u); AuAtomicAdd(pThat, 1u);
InternalLTSWakeOne(pThat); if (AuAtomicLoad(&this->writersPending_))
{
InternalLTSWakeOne(pThat);
}
} }
else else
{ {
@ -564,9 +567,11 @@ namespace Aurora::Threading::Primitives
if (gUseFutexRWLock) if (gUseFutexRWLock)
{ {
auto pThat = this->GetFutexConditionWriter(); auto pThat = this->GetFutexConditionWriter();
AuUInt32 uCount = AuAtomicLoad(&this->writersPending_) + iBias; if (auto uCount = AuUInt32(AuAtomicLoad(&this->writersPending_) + iBias))
AuAtomicAdd(pThat, uCount); {
InternalLTSWakeCount(pThat, uCount); AuAtomicAdd(pThat, uCount);
InternalLTSWakeCount(pThat, uCount);
}
} }
else else
{ {