Commit Graph

1907 Commits

Author SHA1 Message Date
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
8fc20bcc11 [*] Updated XP note 2024-06-30 09:45:07 +01:00
f2e3ceef99 [+] Au[Futex]Countdown 2024-06-30 05:40:13 +01:00
0555e8cc32 [*] Update: WakeOnAddress.hpp comments 2024-06-30 05:13:55 +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
27b18c0a37 [+] MemoryView::ToSharedControlBlock
[+] et al
2024-06-29 01:12:07 +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
114976a71d [*] im a smort boi 2024-06-19 22:17:55 +01:00
5b19341186 [*] Improve regressed AuWoA time to wake 2024-06-19 22:05:17 +01:00
9805a57647 [+] MemoryView::Clone()
[+] MemoryView::CloneSelf()
2024-06-11 07:25:48 +01:00
7fdcdb7568 [*] Fuck you 2024-06-10 14:08:58 +01:00
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 expandable
2024-06-03 04:26:18 +01:00
3241ebb349 [+] The missing AuByteBuffer::ByteBuffer(const MemoryViewRead &readView, ...) constructor 2024-06-02 00:13:56 +01:00
4e7f3ed3dd [*] Sometimes let ByteBuffer::Resize pass when it shouldn't be allowed to 2024-06-02 00:05:19 +01:00
588322252f [*] Redo ByteBuffer::Pad for write streams 2024-06-01 23:57:50 +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
c3e898d53d [*] Redo d520b0ce with the lost semaphore copy described in the commit comment
(wtf? did i stash something at the wrong time?)
2024-05-28 19:28:08 +01:00
22136a8ae2 [*] Update media txt files 2024-05-28 18:56:20 +01:00
85cf0a793a [*] Release AuAsyncTimer callback references as soon as the object is canceled 2024-05-28 18:18:54 +01:00
d520b0ce42 [*] I'm going to let the reference waitaible/woa/futex primitives be copy and movable now.
condvars -> cannot matter, you're creating a new object
mutex -> cannot mater, you're creating a new object, perhaps copy assignment under lock might be required depending on the parent. either way, a copy ctor is not required
semaphore -> copy state in case of the timelime barrier use case. semaphores emulating condvars and similar logic wont mind the overshoot. best case, we do want to copy the previous state as the initial count. worst case, your code is fundamentally broken.
2024-05-28 00:42:24 +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
30b0fce882 [*] Updated/added FutexBarrier comments and updated AuThreadings README 2024-05-27 14:35:10 +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
9b3aa12db6 [*] Fix bytebuffer crash on copy assignment when empty (also move the constructors implementation to a inl file) 2024-05-22 11:43:46 +01:00
60771f6e6b [+] MemoryView::DemoteFromSharedView 2024-05-21 11:30:15 +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
e86a414837 [*] d589ce3549 missed header update 2024-05-11 18:51:16 +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
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. 2024-05-05 22:01:19 +01:00
f3ba901f71 [+] Zen3 on top of AlderLake optimizations
[*] Minor alderlake adjustments
2024-05-05 19:42:10 +01:00
459a9a789b [*] Switch C0.2 and C0.1 powerstates around 2024-05-03 15:52:50 +01:00
f948c3423c [*] Fix dodgy mostly unused error-less T ByteBuffer::ReadTagged() 2024-05-03 14:23:21 +01:00
134816e128 [*] Optimize primitives SMTYield for Alderlake+ user-space, BIOS-ring mwait, and AARCH 2024-05-03 12:22:38 +01:00
a35c1f165a [+] AuAsync::ThreadPool::Wakeup(WorkerId_t) 2024-05-03 11:32:31 +01:00
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.
2024-05-03 09:28:14 +01:00