e63903d0f4[*] NT security: do not contaminate the caller thread of AuProcesses with user-switching elevation.Jamie Reece Wilson2024-11-18 21:29:04 +0000
00e105aeb5[*] POSIX security: let the execute/special bit override ADS blocks. Not that is matters, because modern Google bitched out of supporting Linux quarantine and FireFox devs are incompetentJamie Reece Wilson2024-11-18 16:55:15 +0000
5a0bd702c5[*] Refactor CpuLoadSampler -> ProcessLoadSampler to disambiguate the object from CoreLoadSamplerImpl [*] Update readme and commentsJamie Reece Wilson2024-11-16 15:23:41 +0000
35c71481f7[+] IAuroraThread::GetThreadTLSIdentity() [cherry-picked from debug update - delayed] [+] TLSVariable::OfThread(u32) [cherry-picked from debug update - delayed]J Reece Wilson2024-11-12 09:18:43 +0000
c6c62ffca7[*] Clean up RuntimeConfig.hpp [*] Fix consoles blocking; [*] Fix an AuSharedFromThis() in AuCertChain that should've been removedJamie Reece Wilson2024-11-08 04:28:58 +0000
1fb36548ea[*] Minor net fixes [*] Fix async shutdown / inline shutdown condition [*] Fix multiple net triggers [*] Fix spurious UDP Session Socket timeoutsJamie Reece Wilson2024-10-19 17:47:05 +0100
a2322470b8[*] Win32 Shell Opener: do the main operation outside of the lock [*] Linux IO / AuAsync: always use AU_CO_ROUTINE_SUS_NEVER or bool(false). Fixed dropped IO callbacks. [*] Linux: Added POLLHUP to the blocking read poll. We shouldn't need this. Sockets and pipes set their read side on relevant events. For instance, async connect results in a writable signal, dropped sockets will become signaled under a select, etc. IPC works. Net works. Just gonna add this to the read trigger just in case.J Reece Wilson2024-10-16 14:45:07 +0100
7a0593adeb[+] AuCrypto::CA::ICertificateStore [+] AuCrypto::CA::INewCertificateStore [+] AuCrypto::CA::IPinCertificate [+] AuCrypto::CA::PinAlwaysFail [+] AuCrypto::CA::PinAlwaysPass [+] AuCrypto::CA::PinCheckOS [+] AuCrypto::CA::PinCheckDefault [+] AuCrypto::CA::PinCheckBuiltin [+] AuCrypto::CA::PinCheckGlobal [+] AuCrypto::CA::PinCheckTwoAnd [+] AuCrypto::CA::PinCheckTwoOr [+] AuCrypto::CA::SetGlobalTLSPinner [*] Minor AuCrypto::X509 decoder work [*] AuCrypto::X509: transition to memory views (x509 is bytebuffer era and earlier code, beri early) [+] AuCrypto::IPrivateKeyProvider [+] AuCrypto::IPrivateKeyPair [+] AuCrypto::PrivateKeyPair [+] AuCrypto::ImportPrivateKeyPair [*] Refactor: AuCrypto::X509::GenerateCertificate(...) [+] AuCrypto::X509::NewChainFromOneDer [+] AuCrypto::X509::NewChainFromManyDer [+] AuCrypto::X509::NewChainFromManyDerInStream [+] AuCrypto::X509::NewChainFromOnePem [+] AuCrypto::X509::NewChainFromManyPem [+] AuCrypto::X509::NewChainFromManyPemInStream [*] Fix TLS code that was abandoned since its introduction with the net code. mbedtls is a hairbrained mess. so many *blocking* github issues starting after 2017. so little progress. [+] AuIO::TLS::TLSMeta::pKeyPairProvider [+] AuIO::TLS::TLSServer::bAllowSNIToFallBackDefault [+] AuIO::TLS::TLSServer::bAllowSNILessUseDefaultCertJ Reece Wilson2024-10-16 02:05:11 +0100
b5c4271807[*] Some WTF [*] Use waitpid instead of wait3 (BSD, now deprecated by POSIX) [*] Win32 / x86_32: I guess the file map maximum size should be the same as 64bit since it lets us? we need this span constraint to be the entire file or less. [*] Improved AuProcess UNIX signal safety [*] Comments [+] Secret API: RuntimeCollectMemoryJamie Reece Wilson2024-10-12 16:28:18 +0100
02826d2365[+] AuLoop::kWaitMultipleFlagNoIOCallbacks [+] AuLoop::kWaitMultipleFlagBreakAfterAPC [+] Alternative Wait AND implementations for NT, POSIX, and generic [+] IOConfig::... [*] LoopQueue improvements [+] ILoopQueue::ConfigureDoIOApcCallbacks [+] ILoopQueue::ConfigureDoIOApcCallbacksJ Reece Wilson2024-10-10 11:03:26 +0100
82ed6e5617[*] AuAsync build regression [*] Fix potential for null deref under net adapters api [*] Improved generic IO WaitFor * AND * (still suxs)J Reece Wilson2024-10-09 01:58:18 +0100
6e9e962c84[*] AuLoop::WaitMultipleLoopSources optimizations (do not allocate so much, if we can), and [*] Updated Loop.hpp commentJamie Reece Wilson2024-09-28 22:59:37 +0100
f059141505[*] AuCmdLine::GetValue(...) (both variants) refactored to use views to help with future stability issues around AuStrings (and their allocator?)Jamie Reece Wilson2024-09-27 22:46:50 +0100
7046ccec11[*] Refactor some APIs to use string views instead of strings [+] Added new shell dirs API [+] AuOptional<AuROString> GetUserDocuments() [+] AuOptional<AuROString> GetUserDownloads() [+] AuOptional<AuROString> GetUserDesktop() [+] AuOptional<AuROString> GetUserPhotos() [+] AuOptional<AuROString> GetUserVideos() [+] AuOptional<AuROString> GetUserMusic() [*] Amend IPCHandle::InitFromSharing (use string view) [*] AuFS devices API should now use string views [*] AuProcess, Process APIs now use string views (ModuleLoadRequest, LoadModule, GetProcAddressEx, etc) [*] AuProcess, Paths APIs now use string views (GetProcessDirectory, GetProcessFullPath, etc) [*] Fix XP using common my documents vs local user documentsJamie Reece Wilson2024-09-24 18:53:54 +0100
ff65193d0f[*] TODO: (Finish me) Win7 ILoopQueue doesn't seem to like the in process high perf timer io primitive so much. It works fine under Linux and WaitForMultipleObject WinXP-WinRT.Jamie Reece Wilson2024-09-21 01:45:46 +0100
d99c1032da[*] Regression: AuROXTL string view has a different interpretation of what remove prefix/suffix should be. Fix SplitNewlines [*] Harden SplitString & SplitStringDelm, do not splice UTF8 sequencesJamie Reece Wilson2024-08-22 19:13:28 +0100
0f6c020c26[*] Scar is being a deadbeat. Blame him if this doesn't build. Unverified C2397 narrowing conversion.Jamie Reece Wilson2024-08-19 08:17:36 +0100
3e77e61914[*] As I said, blame clang and gcc devs for being retarded cunts.Jamie Reece Wilson2024-08-19 08:02:35 +0100
1d2d5753b9[*] Linux: possible regressions in 57c5515173. Fixes read while transaction is signaled loopsJ Reece Wilson2024-08-06 03:22:00 +0100
1b240143c4[*] POSIX: AuProcesses mustn't allocate (sorta) while in a COW address space (including accessing bad CRT apis)J Reece Wilson2024-08-05 22:13:02 +0100
55cac676f5[+] AuLoop::NewSemaphoreEx with max count option for in-process (not ipc) limiting the total wakes. This is required for Xbox, Xbox 360, and Win32 emulators deriving a mutex via a the NT semaphore primitive instead of the builtin binary semaphore (event) and mutex.J Reece Wilson2024-08-05 15:57:13 +0100
7cc41f1359[*] Fix: axboe is a piss baby retard who cant even write a thread safe ring buffer This is the dude tasked with managing Linshits IO stack, including the fundamentally flawed muh zero-syscall pissring (#a), the fucked io_submit apis that never worked properly (incl io_cancel that spuriously returns EINVAL despite all magics matching); the retard who stuck to Linus's idea that MUH O_DIRECT IS LE EVIL YOU MUST USE MY CACHES REEE REEE (#b); and the retard who got indirectly called out by Linus as being apart of the database maintainers who Linus didn't/doesnt like and who wanted these APIs in the first place (#c).J Reece Wilson2024-08-05 05:19:58 +0100
75f6325ee2[*] Linux: fix spinning in an io_submit=EAGAIN loopJ Reece Wilson2024-08-05 04:32:52 +0100
5947e6a2c3[*/+] Added internal AuLoop::WaitMultipleOrObjects function for POSIX Issue4+ users, excluding the BSDs, to optimize AuLoop::WaitForMultipleObject users. (Win32 and Xbox emulators). This mitigates the epoll allocation / release under Linux.J Reece Wilson2024-08-02 02:23:09 +0100
cc01b0557a[*] Improve ILoopQueue::WaitAll parity (been on the todo list for, idk, 3 years)J Reece Wilson2024-08-01 12:55:08 +0100
c6ce29a188[*] AuProcess on linux: use AuParse instead of strtollJ Reece Wilson2024-08-01 11:41:44 +0100
2274b7f624[*] Fix: AuParse parse ints should fail on an empty/null/0-length range instead of parsing nothing and returning trueJ Reece Wilson2024-08-01 11:41:07 +0100
5cafefae5d[*] LSLocalSemaphore bug fix for scriptability. (TODO: reimpl like the event?) [*] Fix: IO objects not using the explicit slow sync primitives. Dunno how these werent refactored; then again, i never properly got around to finishing the factories for fast/slow io objects. In addition, some of these arent even accessed by the ILoopSource interface, so it's not as critical of a failure.Jamie Reece Wilson2024-07-30 17:30:19 +0100
9956f1c153[+] AuIO::Loop::kWaitMultipleFlagBreakAfterOne for Win32 WaitForMultipleObjects shim (we cannot return an array of indices to a win32 program)Jamie Reece Wilson2024-07-30 16:48:51 +0100
8be1afe570[+] AuMemory::Heap adapters for third party heap allocators [+] AuMemory::HeapAdapterInterface to describe aforementioned heap allocators of a very limited API [+] AuMemory::HeapAdapter[Unique,Shared,] [+] HeapWin32Adapter to convert HANDLE hHeaps of win32s CreateHeap (RtlCreateHeap?) into AuMemory::HeapsJamie Reece Wilson2024-07-19 09:03:13 +0100
a995c37e81[*] Fixup half-assed/rushed alloc class with alignment in the .hpp to .inl breakout commit (ced9e0be) (sure, it cannot work to realign structs with c++ operator[] overloading; however, we need this to prevent excessive allocations when cloning a U8 memory view of alignment)Jamie Reece Wilson2024-07-19 08:58:22 +0100
e665720f24[*] Update AuMemory::SharableByteBuffer to be useful with the transition to AuSPtr<AuMemoryViewXXX>'less APIsJ Reece Wilson2024-07-13 17:08:03 +0100
124e9d1d0a[*] Fix main process heap fragmentation caused by shared pointer blocks, always allocate from within the heap objectJamie Reece Wilson2024-07-13 03:07:02 +0100
46ef3231a2[*] Change how the default work completion group for an AuAsync threads is created and kept aliveJamie Reece Wilson2024-07-12 20:40:05 +0100
af5c8e86c0[*] AuSPtr<AuMemoryViewXXXX> is now an anti-pattern. After 3 fucking years, memory views of shared control blocks and atomic in use counters are properly utilized everywhere. We do not need generic superclasses to be safe anymoreJamie Reece Wilson2024-07-12 20:22:48 +0100
d803f1547c[+] Added AuAsync per thread io group singleton [*] Move static functions out of the thread pool interface. no idea how i had successful builds beforeJamie Reece Wilson2024-07-12 17:22:07 +0100
daf4552eb2[*] Update AuByteBuffer::Pad to include bUpdateWriteHead argument. broke previous behavior bc this is more convenient and old users were already doing this after the factJamie Reece Wilson2024-07-09 02:08:17 +0100
c6e6c1c433[+] Added Linux FSPlatformDevices implementationJ Reece Wilson2024-07-05 10:39:24 +0100
4ab5b4cba7[*] After just shy of 1y, introduce FS devices into the default include tree. Linux will be brought up soon enoughJ Reece Wilson2024-07-04 23:27:04 +0100
3143f3d2eb[*] Handling of edge case special dirs under Torbalds OSJ Reece Wilson2024-07-04 18:50:33 +0100
937016e9f3[*] Harden awaiting unlock via RuntimeWaitForSecondaryTick() usage under linuxJ Reece Wilson2024-07-03 20:07:59 +0100
e7597b8463[+] Added basic posix name resolution for when glibc isnt present or when being built on non-glibc toolchainsJ Reece Wilson2024-07-01 12:23:18 +0100
592afe00a7[*] AuNet: Missing Linux TODO block; harden two callbacks missing a try/catchJ Reece Wilson2024-07-01 11:54:18 +0100
a1672a33d7[*] Linux alternative dynamic loader: AuProcess main process path has to be pulled from the procmap instead of arg[0]J Reece Wilson2024-06-29 16:06:42 +0100
05737d61fe[*] Linux hack: drop arg[0] when the string contains ld-AuroraJ Reece Wilson2024-06-29 14:32:20 +0100
bd034aec31[*] AuOSThread harden set piro and name against race conditionsJ Reece Wilson2024-06-29 06:12:19 +0100
035d822ec1[*] Explicit memory order access barrier when reading WOA_SEMAPHORE_MODE-less bAlive under weakly ordered systems. (5b193411 cont: "[*] Improve regressed AuWoA time to wake" In all other cases, the memory is either thread-local write-local or followed up by an indirect aquire/release of the processors pipeline and L1 cache by virtue of the containers dumb spinlock ::Lock, ::Unlock (...release, ...barrier) Clang doesn't have /volatile:ms anymore so we cant rely on that Assuming MSVC-like or x86 isnt good enoughJamie Reece Wilson2024-06-23 04:08:58 +0100
ee9e318511[*] Fix: AuByteBuffer::Resize could resize with wrong ringbuffer alignmnet or linear if a fast path fails [+] ByteBuffer::ByteBuffer(const MemoryViewRead &readView, AuUInt uAlignment, bool circular, bool expandableJamie Reece Wilson2024-06-03 04:23:51 +0100
a1c1e88f51[*] Unify/make consistent one compression out of memory space to write into error as code 0x69, string="OOM"Jamie Reece Wilson2024-05-30 01:15:37 +0100
c3e898d53d[*] Redo d520b0ce with the lost semaphore copy described in the commit comment (wtf? did i stash something at the wrong time?)Jamie Reece Wilson2024-05-28 19:28:08 +0100
9b3aa12db6[*] Fix bytebuffer crash on copy assignment when empty (also move the constructors implementation to a inl file)Jamie Reece Wilson2024-05-22 11:43:46 +0100
67894b399b[*] Revert clang 'optimization' because this piece of shit compiler wont listen to me. Even worse, im just going to fucking nuke all clang related checks from orbit in our global build_scripts (8b00dc69fceea62ecbbf5a21255a41e2f23921a4), because they admit they cause a 2x slowdown.J Reece Wilson2024-05-13 23:15:52 +0100
26209ea066[*] Prevent SysPanic/SysAsserts under Windows Vista and beta builds of Windows 7 during locale lookup. This shouldn't impact Windows XP. Perhaps Winserver 2003, beta 7, and other releases of older Windows could crash on start up.Jamie Reece Wilson2024-05-13 21:27:07 +0100
631624dc55[*] Linux build regressions, and shrink the size of Linux RWLocks to 48 bytes from 64J Reece Wilson2024-05-07 14:41:16 +0100
8e1c74a5df[*] i swore i replaced this with a tpause before [*] ...and the docs arent clear on whether or not this clock value is relative or absoluteJamie Reece Wilson2024-05-06 22:04:26 +0100
316fb3f6b2[*] (Disabled) bad optimization: possibility to disable spinning of the auasync task scheduler. Worsens CPU usage when spinning is desired on the target platform, when paired with the two platforms this optimization would've benefited, Windows 7 and Linux.Jamie Reece Wilson2024-05-05 20:17:19 +0100
f3ba901f71[+] Zen3 on top of AlderLake optimizations [*] Minor alderlake adjustmentsJamie Reece Wilson2024-05-05 19:42:10 +0100
373ccc3660[+] C++20 QOL changes to AuFutures including AuFuture<X, Y>::BlockUntilComplete() [*] Added additional check for failing dependencies of IWorkItems. Not required for fails to cascade, but this is nice to have here.Jamie Reece Wilson2024-05-02 20:06:41 +0100
6122525ed3[*] Fix AuProcess deadlock and parity issue between some unix loaders and Windows [*] Slight UWP progress in AuProcessMap.NT.cpp (not really)Jamie Reece Wilson2024-04-20 05:41:56 +0100
616fc54531[*] Hash WELL outputs (ABI break once again >:( ) [*] Rework/Fix WELL_NextBytes (large) improperly accounting for small buffers (this internal function is publicly visible. WELL_NextLong isn't going to save us)Jamie Reece Wilson2024-04-18 05:06:40 +0100
88a07714e5[*] Made conapi requirement under Win32 optional and completely nuke the code when building under non-win32 targetsJamie Reece Wilson2024-04-14 23:11:15 +0100
528cb01679[*] INetAdapter refactor: lets not assume all adapters have IP addressesJamie Reece Wilson2024-04-14 20:11:08 +0100
3115627424[*] Introduce APIs to access IProcessSectionMapView safely when malicious calls to Unmap could be madeJamie Reece Wilson2024-04-12 13:12:35 +0100
13ddd42961[*] Limit kThreadIdAny dequeues until one until we can preempt the work queues of threads within our local groupJamie Reece Wilson2024-04-10 07:39:11 +0100
ec44cc1d69[*] Ensure these fallback primitives can be accessed by -> operatorJamie Reece Wilson2024-03-27 03:19:18 +0000
232a136bfe[+] IOHandle::IsWriteEoSOnClose [+] IOHandle::SetWriteEoSOnClose [+] IOHandle::HandleCreate::bFlushOnClose [+] IOHandle::HandleCreate::bWriteEoSOnClose [*] Unified grug based auto-truncating. Previously we were truncating on the final derefing thread; now, we truncate on the grug thread. [*] Refactor/Cleanup IOHandleJamie Reece Wilson2024-03-27 03:12:49 +0000
30fa15b726[*] Clean up grug and auasync scheduler / improved idle cpu usageJamie Reece Wilson2024-03-26 18:37:24 +0000
25b1a9cad6[*] Thread-safety: harden io file streams and improve construction api of OpenBlockingFileStreamFromHandleJamie Reece Wilson2024-03-15 08:46:12 +0000
ccc4116394[*] PosixShutup for AuProcesses::OpenXXXX and two minor bug fixesJ Reece Wilson2024-03-15 06:18:32 +0000
2ba5ae6fa5[*] Windows 10 LTSC / other branches crash on startup fix (missing FOLDERID_UserProgramFiles for some reason)Jamie Reece Wilson2024-03-12 04:32:45 +0000
0f4a7bf8cb[*] Update GetSystemResourcePath to check package path before user rw directoriesJamie Reece Wilson2024-03-11 21:22:24 +0000
9c4315ff95[*] Hardening in the form of the prevention of future bad rewrites of similar code [+] MemoryView::AtOffset [+] MemoryView::TakeJamie Reece Wilson2024-03-10 09:46:53 +0000
3c6d5a020b[*] Linux and Posix targets now respect gRuntimeConfig.debug.bIsExceptionThrowFatalJ Reece Wilson2024-03-10 00:09:12 +0000
3c4cece69d[*] Fix deadlock on enter, when dispatching the command results in a grug handler being executed, followed by a deadlock during flush [*] also wtf is thisJamie Reece Wilson2024-03-09 08:15:30 +0000
0a6c11d919[*] Moved some source code to AuProcAddresses.UNIX.cppJ Reece Wilson2024-03-05 18:37:44 +0000
2371794d47[+] Linux Exception Handlers and AuExit::ETriggerLevel::eSigQuitNow [*] Linux stability fixes [+] AuProcAddresses.UNIX.[cpp/hpp]J Reece Wilson2024-03-05 11:06:29 +0000
8b29e73f96[*] Switch over to mapped cpuset ids as opposed to the ((groupIndex + 1ull) * 0x100ull) + logicalProcessorIndex approximationJamie Reece Wilson2024-03-04 13:07:49 +0000
78e0c2d442[*] Let IOHandle own the sharing state (auto-call SharingStop on dtor) instead of leaking IPC sharable on copyJamie Reece Wilson2024-02-25 19:50:19 +0000
2b0ed79729[*] NT Condvar hardening: Windows XP-7 hardening of the spin condition when racing against multiple threadsJamie Reece Wilson2024-02-08 03:54:48 +0000
12fd03a6dd[*] WoA acbd6266 cont (?). I think I'm still getting messed up by over-optimizations as opposed to there being a genuine bug in the primitives. Made the accesses to the comparison volatile during deep sleeps, whereas before we were just casting to regular integer pointers or performing a memcmp. 00:29:11:820 15> 1 functions were new in current compilation 00:29:11:820 15> 51 functions had inline decision re-evaluated but remain unchanged (it did *something*)Jamie Reece Wilson2024-02-08 01:55:16 +0000
b7a5bfe8b3[*] fuck the brain diseased demented boomers on the c++ arse sniffing committeeJamie Reece Wilson2024-01-30 08:55:08 +0000
62b6fa20f8[*] Update the copyright header of most of the primitives [*] Fix generic mutex abs yield always returning trueJamie Reece Wilson2024-01-29 14:09:59 +0000
2943ffdbc2[*] Harden Windows XP - 7 condvar; where signalers can lock up pending scheduling n threads whilst a spurious wake is occurring and trying to preemptively require the lock under the signalJamie Reece Wilson2024-01-27 11:46:18 +0000
63858cfcb9[+] Early impl of allocless destruction callbacks for adal (AuUtility::DestructionWatch and AuUtility::ADestructionWatcher)Jamie Reece Wilson2024-01-22 02:03:51 +0000
648fbea6c1[*] This stupid fuck regression should've been caught earlier (AuProcesses unable to open files due to attack mitigations determining every file as being blocked)Jamie Reece Wilson2024-01-20 20:20:57 +0000
acbd62666f[*] WoA: This member must be marked volatile due to over ::WaitOn optimization of assumed single-threaded control flowJamie Reece Wilson2024-01-19 21:37:16 +0000
2ebf2811bd[*] Leave the signal, dont callback [*] ...and attach [*] ...and check args [*] ...and always check later at least onceJamie Reece Wilson2024-01-05 12:55:19 +0000
5862dbeacc[+] New generic primitives [-] AuSemaphore.Unix.hpp [*] Moved the old pthread based primitives to _removed/*.bak [+] AuWoASemaphore.Unix.cpp [+] AuWoASemaphore.Unix.hppJamie Reece Wilson2023-12-29 15:35:25 +0000
9393c17564[*] Other POSIX systems (non-linux) are probably going to need this improved eSpawnChildProcessWorker awarenessJamie Reece Wilson2023-12-23 03:56:09 +0000
a932aa57d2[*] Formatting pissing me off [+] using AuWorkerId = AuAsync::WorkerId_t; [+] using AuWorkerPId = AuAsync::WorkerPId_t; [+] using AuWorkerID = AuAsync::WorkerPId_t;Jamie Reece Wilson2023-12-16 05:52:43 +0000
ad5ff2d783[*] Simplified Win32 TLS callback overhead to prevent unwanted LoadLibraryW calls (ive seen windows components do stupid things to result in crashes. time to harden.)Jamie Reece Wilson2023-12-07 19:00:14 +0000
8b4ad9795c[*] Update the FutexSemaphore to wake no more than the requested wake count [*] Cleanup NTs semaphoreJamie Reece Wilson2023-12-06 11:14:23 +0000
880388ea73[*] I see no reason why Windows Server 2008 on Azure of 12/2023 would be behind Win7, so far as the Runtime is concernedJamie Reece Wilson2023-12-02 06:14:38 +0000
42beaeabf5[*] AuFS::MoveDirectory -> Try remove dirs afterwards (should only succeed if empty. failure is ignored and reported to CopyDirResult)Jamie Reece Wilson2023-11-29 14:04:57 +0000
999f3e69ca[*] RNG (PLAYBACK ABI-BREAK!!!): preemptively silence the turbo autists that are going to complain about modulo bias (...well, mostly. this will be good enough.) [*] Improve fast RNG device perfJamie Reece Wilson2023-11-15 17:53:37 +0000
0bcdb46d72[+] AuEvent alias [+] AuBarrier alias [+] AuCriticalSection alias [+] ...et alJamie Reece Wilson2023-11-14 18:16:25 +0000
62e8625a11[+] Aurora::Threading::TryWaitOnAddressEx [*] Spin on top of Linuxs kernel spin, if in non-emu modeJamie Reece Wilson2023-11-14 14:44:56 +0000
f62771b6e7[*] Build regression after ROXTL AuMin/Max update to use the common type as opposed to a stupid reference of a forced common T in the usual case of taking one of two integer values (thats to say, the edge case of needing copy-less operator-overloaded numeric-like classes aren't used anywhere. The c++ definition of min/max is stupid; we dont ever need a reference to min/max variable)Jamie Reece Wilson2023-10-17 04:58:30 +0100
cb60e77c63[+] IIOPipeWork::SetNextFrameTargetLength [+] IIOPipeWork::GetNextFrameTargetLength [+] IIOPipeWork::GetNextFrameTargetLength [+] IIOPipeWork::ReallocateLater [+] IIOPipeWork::GetSuccessfulReallocations [+] IIOPipeWork::GetFailedReallocations [+] IIOPipeWork::DidLastReallocFail (will save net and engine from doing its their current hacks)Jamie Reece Wilson2023-10-16 01:37:59 +0100
f798c59cb8[*] Fixed missed and double mimalloc init, via allocation under SwInfo, being probed by alternative nt clock query logic, under the fallback rng algorithm, possibly under another tls thread_only race conditionJamie Reece Wilson2023-10-08 14:51:12 +0100
478cb2b185[*] Improve RNG fallback performance (early process init canaries) by properly accounting for < 10 Mhz clocksJamie Reece Wilson2023-10-07 14:50:32 +0100
605862094e[*] Fix some old known Win32 loop queue issues under bullshit real world conditions (recursion, any retries, etc)Jamie Reece Wilson2023-10-03 22:02:48 +0100
a60e740328[*] caught async deinit deadlock featues conflicting with idec what. this mess needs rewritingJamie Reece Wilson2023-10-01 17:10:48 +0100
cdad552ed0[*] Fix OSThread regression / main thread was stalling for a few seconds on exit because the schedulers end of thread clean up was bailing out under the "pls no dtor race before the os spawn kicks in" lock pathJamie Reece Wilson2023-10-01 14:12:22 +0100
522def0a85[*] I'm going to be autistic and say "everybody" is (read: industry midwits are) wrong about datesJamie Reece Wilson2023-09-28 17:56:16 +0100
ea241d86f3[*] Resolve ambiguous namespace regression (new conflict between Aurora::IO::Utility and Aurora::Utility)Jamie Reece Wilson2023-09-28 15:42:09 +0100
635f9e39e9[*] Modernize IOBufferedProcessor (and moved to the io utility namespace) [+] AuIO::Utility::NewBufferedProcessorEx [+] AuByteBuffer::calcDifferenceBetweenHeadsUnsigned [+] AuByteBuffer::calcDifferenceBetweenHeadsSignedJamie Reece Wilson2023-09-28 12:22:42 +0100
125c150fc5[*] Made AuOpen.Unix.cpp in parity with Windows in that all IO should be deferred off the calling threadJ Reece Wilson2023-09-19 00:40:00 +0100
9be76adb23[*] Further drop required symbols from OLE (COM) and SHELL32 (NT Shell) [*] Optimize NT file and URI openerJamie Reece Wilson2023-09-17 21:33:14 +0100
9bfd895fc4[*] Linux: replace the initial map scanners aggressive filtering to not dismiss potential hits. Also parses file offsets for these section maps.J Reece Wilson2023-09-15 23:50:00 +0100
f08f4a476a[*] Ehhh. I never liked how I implemented the fallback for MS absolute waits. We should calculate it via a delta between current NS time to avoid NS/MS clock overflows. Some platforms and points in time may be more resistant than others. Let's assume monotonic time could be really high, this should help mitigate some bad math and branching caused by timeout overflows caused by stupid MS-precise abs waits (not sure why people would favour these over abs ns)Jamie Reece Wilson2023-09-12 16:25:42 +0100
4b0a7c651a[*] Guess I should finalize this for linux. The verbosity of writing a cas in the wait loops is stupid if we arent doing anything special with the bits.Jamie Reece Wilson2023-09-12 16:12:54 +0100
00260294b2[*] Guess this got twisted, or maybe my intention was to zero out if we cant get accurate topology from apic bits; i don't recallJamie Reece Wilson2023-09-12 13:34:03 +0100
403c186f0a[*] Improve NT semaphore: use a different internal api now. Might help uncontested servers with work queues using semaphoresJamie Reece Wilson2023-09-12 13:28:46 +0100
b46390f83a[*] Remove explicit Windows version check assuming certain file systems and platforms can be stupidJamie Reece Wilson2023-09-12 01:35:54 +0100
6062a16d9c[*] Prevent overflow into UNC root namespace of hostnames and volumes via path or filename overflowJamie Reece Wilson2023-09-12 00:52:16 +0100
92593be412[*] FS path mitigation: begin to handle >= MAX_PATHs by enforcing UNC \\?\ prefixes across every single Win32/NT api we hit (if relevant. im sure some long paths may still break things.)Jamie Reece Wilson2023-09-10 23:49:23 +0100
d727859cc2[*] Linux/Modern NT regression in new optimized event wait pathJamie Reece Wilson2023-09-10 22:42:19 +0100
22efbff12f[*] 74dc6772 cont: this structure is going to be padded to 32bits anyway. this makes the atomic operations easierJamie Reece Wilson2023-09-10 18:10:36 +0100
48dc2e790b[+] IEvent::TrySet() [+] New atomic logic for AuEvent. With this change, I can stop slandering it as the "shit primitive." (it's still not the best it could be, but it's an improvement over what i had before)Jamie Reece Wilson2023-09-10 14:00:18 +0100
9ab0c25b05[*] Win32 opener: ensure file/dir exists (subject to time of check attack, but its fine to prevent stupid 'open' shellexec exploits. wont save you if io write is available)Jamie Reece Wilson2023-09-09 23:09:28 +0100
88355932c1[*] Optimize thread configurations to be unpacked from the bitmap once at startup and during reconfigure as opposed ad-hocJamie Reece Wilson2023-09-09 17:37:14 +0100
cea3362186[*] Finally fixed an old regression: RWLock is back to being write-biased to prevent forever-read conditionsJamie Reece Wilson2023-09-09 13:03:02 +0100
109b0cff3f[*] ...and same applies to RWLock (instead its pls dont use the public api instead of the internal NT apis)Jamie Reece Wilson2023-09-09 12:39:47 +0100
9601fcfd39[*] NT AuThreadPrimitives: stop using these AuProcAddresses directlyJamie Reece Wilson2023-09-09 12:29:43 +0100
876f4439b3[*] NT proceesses: no point in pretending _spawnv is a real thing. this path is just causing defects.Jamie Reece Wilson2023-09-04 23:46:48 +0100
0838373410[*] NT Optimization: more aggressive semaphores to prevent atomic failures (perhaps this could be made to account for weak exchanges under different archs)Jamie Reece Wilson2023-09-02 19:05:07 +0100
73a52552f7[*] [to revert?] Attempt to mitigate message spam wakeups on older systems Also forces higher latency on Windows 7Jamie Reece Wilson2023-09-02 17:56:15 +0100
cc6e0358fa[*] NT: further optimizations to solve CPU usage regressionsJamie Reece Wilson2023-09-02 15:29:42 +0100
9fbdafea74[*] x86_64 Use RDSC for more deterministic back-off durations Well, sort of. It's more likely to be referenced against the exact frequency stated in the hard-coded CPUID vendor string.Jamie Reece Wilson2023-09-02 14:29:55 +0100
affe4cc496[*] RWLock: simplify writersPending_ guard [*] Fix RWLock: I may have messed up the new fast path timeouts in RWLock [*] RWLock: refactoring/improvementsJamie Reece Wilson2023-08-30 15:09:09 +0100
3503d0ec68[+] Added Linux signal configuration and separate LinuxConfig type (LinuxConfig) [*] Fix Linux regressions in previous NT commitJ Reece Wilson2023-08-29 01:58:48 +0100
4b1e3fd1e5[*] 346a9f3bde still isnt good enough. why the fuck must all (not projecting), all, linux code even from the kernel maintainers have fucked syscall checks?J Reece Wilson2023-08-26 16:43:31 +0100
346a9f3bde[*] More aggressively wake up reorder prone (unlikely) condvars under broadcast (unlikely)J Reece Wilson2023-08-26 15:53:13 +0100
3ca8de022e[*] Fix issues related to inconstent retardation in the asinine freetard world GNU and its consequences have been a disaster for the human raceJ Reece Wilson2023-08-26 12:18:10 +0100
293a8ddd66[*] Simplify when to call _beginthreadex (we probably shouldn't)Jamie Reece Wilson2023-08-23 19:11:21 +0100
61eaa701b7[*] MSVC compilation regression (theres no way in fuck vista or xp will run with >= 32 threads. hell, you can barely expect the acpi and boot video drivers to work.)Jamie Reece Wilson2023-08-23 19:04:48 +0100
ccfd0fafab[*] Why must all languages be garbage at expressing life-span of constness? This is const-correct, as in, we don't expect to modify the pointer; you dont need to be a writer This was const-correct, as in, this field better be a volatile block of memory you expect to update - plz dont to any retarded assumptions based on it being "const," compiler.Jamie Reece Wilson2023-08-22 11:08:56 +0100
b8d4e02ab5[+] Aurora::Threading::GetThreadingConfig [+] Aurora::Threading::SetThreadingConfig [*] Save a few bytes in Aurora::ThreadingConfigJamie Reece Wilson2023-08-20 16:20:57 +0100
dd13098022[*] Transition to dynamic tick-based scheduling [*] Re-do AuAsync reference counting [+] IWorkItem::SetSchedSteadyTimeNsAbs [*] Irrelevant IIOProcessor sources are now discarded in evaluating whether or not a thread-pool in special running mode should shutdown [*] Transition WorkItems to only use steady time [*] Refactor AsyncConfig [*] Drop default SMT spin time from hundreds of cycles to ~32 so that we can sit nicely at the bottom of task manager unless the application calls for extra responsivityJamie Reece Wilson2023-08-09 03:21:14 +0100
1cd56ab161[*] Minor AuByteBuffer TypeReadWrite "improvements" (more like, i cant be bothered to finish this in a clean way and we need a minimum viable product)Jamie Reece Wilson2023-08-07 22:51:18 +0100
fc08e8351d[+] Begin work on a POSIX 2001 based clock implementation as opposed to the retarded stinking free-shit glibc toddlers hacked together alongside linux vdso. Once again, a POSIX spec from 2001 and NT kernel releases from 2 decades ago are much better than whatever the hell Linux toddlers are up to in the 2020s.Jamie Reece Wilson2023-08-03 23:51:27 +0100
262d76ddee[*] Windows 7 and predecessors: AuHwInfo memory usage queries seem... offJamie Reece Wilson2023-08-03 23:26:42 +0100
c85d65aa59[*] NT: these file handles must be marked async if reimportedJamie Reece Wilson2023-07-30 14:27:04 +0100
c306c12763[*] Improve WakeOnAddress by hash binning by kDefaultWaitPerProcess instead the previous iteration before BST or HashTree lookupJamie Reece Wilson2023-07-30 09:34:39 +0100
3d9ad0350e[*] now brotli maps uWindowBits to BROTLI_PARAM_LGWIN [+] CompressInfo::uQualityJamie Reece Wilson2023-07-27 22:55:28 +0100
3db5554673[+] brotli now respects CompressInfo::uCompressionLevel [+] brotli now respects CompressInfo::uBlockSize [*] refactored CompressInfo::uLz4BlockSize -> CompressInfo::uBlockSize [*] zstd decompressor now respects user arguments [*] zstd compressor now respects user arguments [*] brotli decompressor now respects user arguments [*] brotli compressor now respects user argumentsJamie Reece Wilson2023-07-27 20:45:49 +0100
788dde684b[*] Windows Vista, UWP, and Windows 11: Move Windows 7 and 8 SetThreadGroupAffinity symbol from the IAT to AuProcAddresses.NT.[c/h]pps object [*] Update the READMEs support tableJamie Reece Wilson2023-07-14 16:31:47 +0100
29226b8134[*] Never rely on the CRT for clean-up if an API user requests us to exitJamie Reece Wilson2023-07-11 21:00:04 +0100
adefbbe16b[*] Harden time based RNG [*] RNG needs specific optimal paths for Win10 and older oses [+] Internal RtlGenRandomJamie Reece Wilson2023-07-11 17:58:20 +0100
14d60ee2d0[*] Wanna drop threaten to drop older APIs from the Windows Runtime? Alright, we're being pushed towards Windows XP support by accident.Jamie Reece Wilson2023-07-09 11:26:17 +0100
627bdddfdc[*] Ensure AuProcAddresses.NT.* is used for all dynamically linked symbolsJamie Reece Wilson2023-07-09 10:03:29 +0100
d192e2529f[*] Move GetSystemCpuSetInformation to AuProcAddresses.NT.cpp [*] Fixed e-core awareness under modern nt targetsJamie Reece Wilson2023-07-09 10:02:21 +0100
730d338c17[*] Coroutine interopability: failed AuFutures are now indicated via AuOptionalEx returned by co_awaitJamie Reece Wilson2023-07-08 12:53:31 +0100
b90feae7d0[-] Remove preemptive POSIX optimization This'll just get in the way of Linux optimizations for the sake of trying to hit the correct yield period without a spurious wake up - all in one shot.Jamie Reece Wilson2023-07-06 09:41:09 +0100
e2accb900b[*] Begin work around for use after thread-local free; WaitOnAddress emulationJamie Reece Wilson2023-07-05 18:25:07 +0100
2d06725b8b[*] Amend compression/decompression error checking; ensure correct library specific OK value is used [*] Amend LZMA flushingJamie Reece Wilson2023-07-05 16:55:54 +0100
00cb256f06[+] Reintroduce LZMA support after dropping support for the compression algorithm during the initial rewriteJamie Reece Wilson2023-07-05 13:56:08 +0100
4c72a20ba2[*] Win32: required to prevent leaks when invoked by Qt (todo: proper journaling of pending actions)Jamie Reece Wilson2023-06-24 17:39:23 +0100
47746de462[+] Process and threaded user and kernel time keeping clocksJamie Reece Wilson2023-06-19 17:26:41 +0100
2d6dca4e21[+] 32bit SOO sizes for sync primitives under x86_32/MSVC [*] Optimize the write-biased reentrant read-write lock down to 88 bytes on MSVC x64Jamie Reece Wilson2023-06-17 17:08:58 +0100
25b933aafa[*] Fixed regression in RWLock size without sacrificing on features (TODO: I would like to WoA optimize it for modern oses at some point)Jamie Reece Wilson2023-06-15 23:59:47 +0100
74b813f051[*] Bloat RWLock by adding a separate yield queue for writers (we were already writer biased)Jamie Reece Wilson2023-06-15 20:54:19 +0100
d389f9dda3[*] Re-optimize the primitives for Windows 8+ on top of a Windows XP+ coreJamie Reece Wilson2023-06-15 20:52:28 +0100
28201db2d7[+] Improve WoA on Windows 8+ [+] AuThreading::WaitOnAddressSteadyJamie Reece Wilson2023-06-15 20:44:27 +0100
17c50eff64[*] fix old unix sync regressions do not hold switching lock while spinning as originally written and intendedJamie Reece Wilson2023-06-13 11:33:29 +0100
1a8acbdde5[+] By-raw pointer WOA lists (also they are now fairer) [+] Steps towards future proofing NT (not the future proofing itself)Jamie Reece Wilson2023-06-12 18:31:10 +0100
50413f36e5[*] keyed events should yield indefinitely in their failure pathJamie Reece Wilson2023-06-12 00:40:24 +0100
123e34d224[*] been meaning to remove this debug preemptive wake up for awhileJamie Reece Wilson2023-06-11 21:35:47 +0100
1bda1f469f[*] simplify wake on address emulation Windows 7 reporting improved time to wake, but it is still averaging about the same... everything.Jamie Reece Wilson2023-06-11 19:13:37 +0100
4a584ce73a[+] Future proof IProtocolInterceptorEx with an optional pParent in the only Aurora Interface methods last argumentJamie Reece Wilson2023-06-10 20:33:19 +0100
90e08d534c[*] optimize the other half (aa7f783f) of compression streams when used with the interceptor interfaceJamie Reece Wilson2023-06-10 20:03:29 +0100
519ba4b26e[*] Fix up AuProcess version handling handling. Includes a new secret env-var.Jamie Reece Wilson2023-06-08 09:52:53 +0100
9f52ca0f1a[*] A patch to fix some of the regressions introduced in the first step in overhauling AuAsync i beat my wife with cardboard spoons. jolly fun.Jamie Reece Wilson2023-06-07 20:35:31 +0100
f92a19621a[*] adjust undershooted ms scale sleeps to smt spin, then yield, in an effort to match nano-scale sleeps within 10s of knsJamie Reece Wilson2023-05-30 13:12:53 +0100
ac4968512b[*] cleaned up an an unwanted network error from the logs by not flushing hello packets should the socket be in an unconnected stateReece2023-05-11 17:46:49 +0100
5ded6a751f[+] STATUS_CONNECTION_REFUSED for some lower-level firewall drivers under WindowsReece2023-05-11 17:38:14 +0100
1fa433540b[*] Experimental lower-latency IO pipes [*] revert win32 net tx hardening - do not use the Reset function to null pSocket [*] fix a bytebuffer circular buffer path [*] update how TLS protocol stacks can snap the stackReece2023-05-11 16:05:00 +0100
9f59d4f921[*] Fix TLS thread index out of bounds accessReece2023-05-09 14:21:55 +0100
f842573352[*] copy/pasted function parityReece2023-05-08 15:21:15 +0100
a2cfb7765b[*] i want every bit of performance i can squeeze out of old windows operating systemsReece2023-05-08 15:16:06 +0100
08f790c3af[*] Update fenceless notes in AuMutex.NT.cppReece2023-05-08 13:58:08 +0100
1ec1d4d01e[*] update these members [ns-scale stat refactoring]Reece2023-05-03 13:34:41 +0100
bd94b73dde[+] New TLSView implementation [+] AuTLSVariableReece2023-04-30 07:54:28 +0100
37472e508e[+] AuMemory::SharedByteBuffer [+] AuMemory::ByteBuffer.flagNoFree [*] SetBuffer(MemoryViewRead readView, bool bMoveWriteHeadForReaders = true); ...added bMoveWriteHeadForReaders [-] AuMemory::SetBuffer(const void *in, AuUInt length) [-] AuMemory::SetBuffer(const AuList<AuUInt8> &buffer) [*] Harden AuMemory::ByteBuffer::RemainingBytes bc it is a high level api that is not called excessively. Invalid head states should not mess with ::CanRead/::CanWrite [*] Harden AuMemory::ByteBuffer::RemainingWrite bc it is a high level api that is not called excessively. Invalid head states should not mess with ::CanRead/::CanWriteReece2023-04-30 02:23:54 +0100
f1e9a7262b[*] pipe processors with a stack attached to them should destroy the stack to forcefully break circular references in user codeReece2023-04-27 06:09:19 +0100
efadd964be[*] Improved disconnect reason reporting: HasErrorCode under the NT network async stream objectReece2023-04-26 20:32:25 +0100
4b79aa902b[*] i dont think this path should ever be hit, but just to be certain, lets check the networks output channel translation object for an error if the socketbase doesnt know of the last fatal error codeReece2023-04-26 20:22:11 +0100
044fb5b7e4[*] added additional arg checks to ByteBuffers constructorsReece2023-04-26 07:43:56 +0100
3f0368b99d[*] cache these adapter allocations awayReece2023-04-26 07:37:14 +0100
30b0c2e0ba[*] Preemptive GetOverlappedResult fast-paths under WaitMultiple2 that rely on the alertable yield under next read/write cannot be trusted if the read count is zero.Reece2023-04-26 07:24:17 +0100
22c4d25759[*] amend cdf5a499, bKillPipeOnFirstRootLevelFalse not respectedReece2023-04-25 12:57:02 +0100
48fc0cdaed[*] amend SysPanic2 to support 0 argsReece2023-04-25 12:23:22 +0100
cdf5a499cb[*] Improved pipe work awareness under protocol stack to allow for propagation of error conditions such that the top most interceptor can kill the pipe workReece2023-04-25 12:13:16 +0100
664eb270dc[+] IIOPipeWork::GetBytesProcessedInterframe [*] IOPipeProcessors will now cap reported progression to the requested length if the requested page size would mean we overrun it.Reece2023-04-25 06:36:31 +0100
f74a41e286[*] Refactor our thread primitives for an SOO change, where the SOO[_t]-suffix is no longer required, resulting a new type conflict issueReece2023-04-23 19:23:10 +0100
5fd655b501[*] further deprecateReece2023-04-22 23:08:49 +0100
d7d514c6b7[*] protocol-stack ticks now check against the buffers error flags to ensure Writes/Reads weren't being silently dropped in user codeReece2023-04-19 23:46:56 +0100
2af2eadfa8[*] Resolve: protocol-stack link bug (multiple append failure / missing next link)Reece2023-04-19 23:35:48 +0100
00129255f8[*] changed this to be a soft-failureReece2023-04-19 04:03:49 +0100
b2311a8824[+] IProcessSectionMapView::LockSwap [+] IProcessSectionMapView::UnlockSwap [*] Fix critical tag under ILogger [*] Added missing includes to experimental APIsReece2023-04-17 15:55:51 +0100
0c494cb99a[*] another preemptive linux fix. i missed a step in calculating the mask (i didnt calculate the mask at all)Reece2023-04-16 23:58:27 +0100
53a29a6c13[*] flag consistencyReece2023-04-16 23:41:06 +0100
6c25b5a5e6[*] atomicity bug fix: hold up this is badReece2023-04-03 10:13:29 +0100
d755a9d651[*] Massive perf boost by removing atomic and [*] Refactor ambiguous IWaitable::Lock(timeoutMs) to LockMS to prevent final using collisionsReece2023-04-03 08:21:44 +0100
39072499dd[*] remove dumb cas loops [*] refactorReece2023-04-01 09:53:00 +0100
5d8f4e6901[*] Further optimizeReece2023-03-17 15:40:15 +0000
a1f4614316[*] i see a possible bugReece2023-03-16 22:18:07 +0000
1476307a60[*] Force this optimization under nonship buildsReece2023-03-16 19:24:05 +0000
e5981a5747[*] Reintroduce the older implementation based on Vista sync primitives when best implementation under NT 5.1 apis isn't available (microsoft being cunts under the false guise of sandboxing xbox and uwp)Reece2023-03-16 18:25:23 +0000
02684d543e[*] New NT mutex should carry the fail under this unlikely pathReece2023-03-16 17:31:50 +0000