diff --git a/Source/Async/ThreadPool.cpp b/Source/Async/ThreadPool.cpp index dff1e130..d2d52ca5 100644 --- a/Source/Async/ThreadPool.cpp +++ b/Source/Async/ThreadPool.cpp @@ -89,7 +89,7 @@ namespace Aurora::Async { AU_LOCK_GUARD(AuStaticCast(unlocker.pool)->rwlock_->AsReadable()); - if (pHandle = AuStaticCast(unlocker.pool)->GetThreadHandle(unlocker)) + if ((pHandle = AuStaticCast(unlocker.pool)->GetThreadHandle(unlocker))) { AU_LOCK_GUARD(pHandle->externalFencesLock); if (pHandle->exitingflag2) diff --git a/Source/Console/ConsoleStd/ConsoleStd.cpp b/Source/Console/ConsoleStd/ConsoleStd.cpp index 240af526..026c3bc1 100755 --- a/Source/Console/ConsoleStd/ConsoleStd.cpp +++ b/Source/Console/ConsoleStd/ConsoleStd.cpp @@ -1235,7 +1235,7 @@ namespace Aurora::Console::ConsoleStd SysAssert(AuTryInsert(gCanonicalBuffer, canInput)); } - else if ((c == 27)) + else if (c == 27) { CanFlushLines(); i++; diff --git a/Source/Crypto/X509/x509.cpp b/Source/Crypto/X509/x509.cpp index 7312018b..9313b94a 100644 --- a/Source/Crypto/X509/x509.cpp +++ b/Source/Crypto/X509/x509.cpp @@ -506,7 +506,7 @@ namespace Aurora::Crypto::X509 [&](mbedtls_x509_crt &ca) { - if (failed |= IsHighRiskStateIssuer(ca)) + if ((failed |= IsHighRiskStateIssuer(ca))) { return; } diff --git a/Source/IO/AuIOPipeProcessor.cpp b/Source/IO/AuIOPipeProcessor.cpp index 3ffa6ea9..ed154246 100644 --- a/Source/IO/AuIOPipeProcessor.cpp +++ b/Source/IO/AuIOPipeProcessor.cpp @@ -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(canRead, uLastFrameBytes); diff --git a/Source/IO/AuIOProcessor.hpp b/Source/IO/AuIOProcessor.hpp index 2958f6d2..9f4019fe 100644 --- a/Source/IO/AuIOProcessor.hpp +++ b/Source/IO/AuIOProcessor.hpp @@ -80,11 +80,11 @@ namespace Aurora::IO AuSPtr ToQueue() override; void ReleaseAllWatches() override; - bool ConfigureNoDeferredTicks(bool bOption); + bool ConfigureNoDeferredTicks(bool bOption) override; bool HasItems() override; - void WakeupThread(); + void WakeupThread() override; bool CheckThread(); diff --git a/Source/Threading/Primitives/AuConditionVariable.NT.hpp b/Source/Threading/Primitives/AuConditionVariable.NT.hpp index 02762556..d919dc4a 100644 --- a/Source/Threading/Primitives/AuConditionVariable.NT.hpp +++ b/Source/Threading/Primitives/AuConditionVariable.NT.hpp @@ -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 \ No newline at end of file