[*] Suppress a number of antisemitic clang warnings

This commit is contained in:
Reece Wilson 2023-08-18 23:30:38 +01:00
parent ad5bbee6b2
commit 92ebafecab
6 changed files with 9 additions and 25 deletions

View File

@ -89,7 +89,7 @@ namespace Aurora::Async
{
AU_LOCK_GUARD(AuStaticCast<ThreadPool>(unlocker.pool)->rwlock_->AsReadable());
if (pHandle = AuStaticCast<ThreadPool>(unlocker.pool)->GetThreadHandle(unlocker))
if ((pHandle = AuStaticCast<ThreadPool>(unlocker.pool)->GetThreadHandle(unlocker)))
{
AU_LOCK_GUARD(pHandle->externalFencesLock);
if (pHandle->exitingflag2)

View File

@ -1235,7 +1235,7 @@ namespace Aurora::Console::ConsoleStd
SysAssert(AuTryInsert(gCanonicalBuffer, canInput));
}
else if ((c == 27))
else if (c == 27)
{
CanFlushLines();
i++;

View File

@ -506,7 +506,7 @@ namespace Aurora::Crypto::X509
[&](mbedtls_x509_crt &ca)
{
if (failed |= IsHighRiskStateIssuer(ca))
if ((failed |= IsHighRiskStateIssuer(ca)))
{
return;
}

View File

@ -399,7 +399,7 @@ namespace Aurora::IO
auto uInterframeProgress = this->GetBytesProcessedInterframe();
if (bIsCullingLastFrame = (this->uBytesWrittenLimit_ && canRead2 + uInterframeProgress > this->uBytesWrittenLimit_))
if ((bIsCullingLastFrame = ((this->uBytesWrittenLimit_ && canRead2 + uInterframeProgress > this->uBytesWrittenLimit_))))
{
auto uLastFrameBytes = this->uBytesWrittenLimit_ - uInterframeProgress;
auto uAbsDataToRead = AuMin<AuUInt>(canRead, uLastFrameBytes);

View File

@ -80,11 +80,11 @@ namespace Aurora::IO
AuSPtr<AuLoop::ILoopQueue> ToQueue() override;
void ReleaseAllWatches() override;
bool ConfigureNoDeferredTicks(bool bOption);
bool ConfigureNoDeferredTicks(bool bOption) override;
bool HasItems() override;
void WakeupThread();
void WakeupThread() override;
bool CheckThread();

View File

@ -51,34 +51,18 @@ namespace Aurora::Threading::Primitives
static const auto kBoolRequiredLateSet = true;
// Future (Reece): I got future plans
static const auto kShiftCountByBits = 8u;
// ...otherwise
// assume undefined behaviour past:
// * bit zero is used for atomic bit test and yield loops
// ( keyed events are an optimization mechanism for Windows XPs spinloop i had accidentally recreated in xenus. )
// ( originally, nt yielding sucked with the most barebones spinlock being dumb a hypervisor-unaware, smt-aware, spinner. )
// ( keyed events would then go in these spinners to serve as an early futex as early back as the year 2000 (?). )
// ( that does, in fact, mean the free-toddlers crying about how 'windows stole muh kernels totally originally idea' is entirely wrong at each sub-point. )
// ( though, keyed didn't see much use until Windows Vistas synch primitives were built on top of them. )
// ( infamously missing 100ths scale nanosecond yimeouts and an inablity to lock with a timeout. )
// ( raymond chen once claimed they didnt make it to xp because they werent fast enough )
// ( raymond chen once claimed a "con" of keyedevents were that they were linear )
// ( problem is, as far as i can tell, they didnt really change. whats worse, WakeOnAddress (windows 8+)
// ( ...inherits the issue of not having relative/abs nanosecond scale timeouts AND the issue the primitives sucking. )
// ( WakeOnAddress is nothing more than keyed events 2.0 - but with userland list keeping. )
// ( scratch the concept of how i implement WakeOnAddress with lists, how older nts waited with lists under lock, )
// ( they use hashmaps with "le meme lockless" interactions which are surly less expensive than reusing tls allocations ?! )
// ( whether or not its even faster is still up for debate. its just easier to use. )
// ( keyed events would then go in these spinners to serve as an early futex as early back as the year 2001-3 (?). )
// * bit one might be used under some niche versions of windows
// (hearsay paranoia)
// i actually have zero reason to believe windows ever implemented lock-awareness into the kernel
// i actually have no reason to believe windows ever implemented lock-awareness into the kernel
// i think it might be fine to skip the whole bit zero thing, but still, im going to say keep the min=2
// worst case scenario, we end up using these bits.
// ....
// =8 is future proof
// =2 is recommended
// =0 would require a bit of a require. i think this is how other people use keyed events nowadays
// worst case scenario, we end up using these bits (we did).
}
#endif