Commit Graph

1567 Commits

Author SHA1 Message Date
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.
2024-08-02 02:23:19 +01:00
67c4cdbee0 [*] TODO: fix int on both platforms 2024-08-01 13:33:36 +01:00
cc01b0557a [*] Improve ILoopQueue::WaitAll parity (been on the todo list for, idk, 3 years) 2024-08-01 12:55:08 +01:00
c6ce29a188 [*] AuProcess on linux: use AuParse instead of strtoll 2024-08-01 11:41:44 +01:00
2274b7f624 [*] Fix: AuParse parse ints should fail on an empty/null/0-length range instead of parsing nothing and returning true 2024-08-01 11:41:07 +01:00
3c846a2ea7 [*] Fix bcrypt compilation regression 2024-08-01 11:40:10 +01:00
8545c59cba [*] Amend: 5cafefae bad linux optimization (?) 2024-07-31 12:02:31 +01:00
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.
2024-07-30 17:53:58 +01:00
9956f1c153 [+] AuIO::Loop::kWaitMultipleFlagBreakAfterOne for Win32 WaitForMultipleObjects shim (we cannot return an array of indices to a win32 program) 2024-07-30 17:26:38 +01:00
ecf8dc6f0b [+] AuRNG::IRandomDevice::...InView
[+] AuRNG::...InView

(amended mixed tabs)
2024-07-21 06:15:02 +01:00
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::Heaps
2024-07-19 09:06:56 +01:00
2628784ff6 [*] Refactor heap stats 2024-07-19 08:25:30 +01:00
c57a90929a [*] Build regression 2024-07-16 00:54:07 +01:00
f2acc253b7 [*] Amend [*] Linux: Update antidbus message for clarity 2024-07-15 00:12:53 +01:00
3d652ed605 [*] af5c8e86c0 20hrs ago: AuSPtr<AuMemoryViewXXX>s werent fully eliminated 2024-07-13 16:34:44 +01:00
46ef3231a2 [*] Change how the default work completion group for an AuAsync threads is created and kept alive 2024-07-12 20:40:05 +01:00
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 anymore 2024-07-12 20:22:48 +01:00
d803f1547c [+] Added AuAsync per thread io group singleton
[*] Move static functions out of the thread pool interface. no idea how i had successful builds before
2024-07-12 17:22:07 +01:00
2b2f5c3d23 [*] Win32: added nvme pcie check under fs devices 2024-07-12 16:22:26 +01:00
d9230ec9c3 [*] Fix NT regression whilst working on a POSIX path bug (3143f3d2) 2024-07-12 16:16:12 +01:00
c6e6c1c433 [+] Added Linux FSPlatformDevices implementation 2024-07-05 10:39:24 +01:00
3143f3d2eb [*] Handling of edge case special dirs under Torbalds OS 2024-07-04 18:54:55 +01:00
937016e9f3 [*] Harden awaiting unlock via RuntimeWaitForSecondaryTick() usage under linux 2024-07-03 20:07:59 +01:00
cb69a7e737 [*] Solve two Linux regressions introduced/poorly worked around in: e7597b8463, 592afe00a7 2024-07-02 05:16:49 +01:00
e7597b8463 [+] Added basic posix name resolution for when glibc isnt present or when being built on non-glibc toolchains 2024-07-01 12:37:38 +01:00
592afe00a7 [*] AuNet: Missing Linux TODO block; harden two callbacks missing a try/catch 2024-07-01 11:54:18 +01:00
3bae761e50 [*] AuIO harden 2024-07-01 11:52:12 +01:00
fa900d0f78 [*] Linux: Update antidbus message for clarity 2024-06-30 04:40:37 +01:00
a1672a33d7 [*] Linux alternative dynamic loader: AuProcess main process path has to be pulled from the procmap instead of arg[0] 2024-06-29 16:06:42 +01:00
05737d61fe [*] Linux hack: drop arg[0] when the string contains ld-Aurora 2024-06-29 14:32:20 +01:00
bd034aec31 [*] AuOSThread harden set piro and name against race conditions
amend: i didnt want to lock so deep of a callstack, but oh well.
amend: win32 regression
2024-06-29 07:33:30 +01:00
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 enough

(and, no retard midwits, volatile is a fine keyword. take ur spec sperging and shove it. i just need to control over-optimization of defacto-weakly ordered access between explicit lockless semaphore yields)
2024-06-23 04:29:21 +01:00
5b19341186 [*] Improve regressed AuWoA time to wake 2024-06-19 22:05:17 +01:00
a1c1e88f51 [*] Unify/make consistent one compression out of memory space to write into error as code 0x69, string="OOM" 2024-05-30 01:15:37 +01:00
85cf0a793a [*] Release AuAsyncTimer callback references as soon as the object is canceled 2024-05-28 18:18:54 +01:00
78d4ce3d58 [*] You stupid fuck. How was this not committed? 2024-05-27 20:57:09 +01:00
efa26dd99d [*] YieldPollNs nonzero timeout check 2024-05-27 16:02:54 +01:00
dbacc71870 [*] Reformat these lines 2024-05-27 15:47:18 +01:00
a5a9fa3887 [*] Updated AuTheading::WaitFor prototype
[+/*] Missing YieldPoll MS prototype in public header
2024-05-27 15:04:21 +01:00
e4fa5d549e [*] Refactor IAuroraThread 2024-05-27 13:28:57 +01:00
5ab97be4e3 [*] Harden Stack.Win32.cpp
Homer running[3]
2024-05-26 17:15:39 +01:00
30b89f1bd7 [*] Security: use AuCodepointsReplaceAll instead of AuReplaceAll under the loggers mitigations 2024-05-21 04:59:05 +01:00
ba36ea4ef1 [+] Added AuOptional<AuUInt> optMaxRecursion to AuFS::ReadDirRecursive 2024-05-19 17:12:14 +01:00
9b26eea886 [+] IAsyncTimer::SetCatchUp(bool bCatchUp) 2024-05-19 17:01:51 +01:00
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.
2024-05-13 23:43:19 +01:00
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.
Unrelated note, Windows XP does in fact have NLS support with these APIs; we just need to use "nlsdl.dll". Fortunately, we already have Windows XP paths, and that DLL is nothing more than a 24kb stub that calls GetLocaleInfoW. Something we already do ourselves.
2024-05-13 21:57:00 +01:00
c3f7e625ba [*] Clang has check_stack, strict_gs_check is msvc specific 2024-05-10 22:37:51 +01:00
d589ce3549 [*] After 2 or 3 years, redo the spinlock 2024-05-07 16:46:12 +01:00
631624dc55 [*] Linux build regressions, and shrink the size of Linux RWLocks to 48 bytes from 64 2024-05-07 14:57:19 +01:00
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 absolute
2024-05-06 22:47:45 +01:00