673d7e3284
[+] AuThreadPrimitives::SmallConditionVariable
...
[+] AuSmallCondvar
2024-12-13 21:41:46 +00:00
2440d5b835
[+] WOA_STRICTER_FIFO
2024-11-21 17:17:09 +00:00
82ed6e5617
[*] AuAsync build regression
...
[*] Fix potential for null deref under net adapters api
[*] Improved generic IO WaitFor * AND * (still suxs)
2024-10-09 01:59:50 +01:00
3e77e61914
[*] As I said, blame clang and gcc devs for being retarded cunts.
...
// Even if clang (and gcc) has these intrins available, you must enable them globally, unlike see for some fucking reason.
// I mean, we can do runtime branching around SSE4 paths no problem. Why all of a sudden am i being gated out of the intrins im electing to use by hand?
// No, you (the compiler) may not use these in your baseline feature set (or incl in stl locks). Yes, i still want them. Now fuck off.
// If these end up being wrong, blame clang and gnu for being cunts, not me.
No, I will not raise our requirements above ivybridge; no, I will not expose feature macros to the STL (et al) that boosts our requirements to modern intelaviv slop and amd atomic ackers
2024-08-19 08:05:01 +01:00
23a80b8039
[*] Refactor ConditionEx -> IFlexibleConditionVariable
2024-08-08 20:21:03 +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
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
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
134816e128
[*] Optimize primitives SMTYield for Alderlake+ user-space, BIOS-ring mwait, and AARCH
2024-05-03 12:22:38 +01:00
c79a709f96
[*] RWLock: "I didn't like what I saw emitted" cont
2024-04-30 22:57:45 +01:00
07ef822bfa
[*] AURORA_FORCE_SRW_LOCKS isn't officially supported but it should at least build
2024-04-30 20:37:00 +01:00
410a67d842
[*] RWLock: I didn't like what I saw emitted
2024-04-30 20:29:20 +01:00
44c7898c29
[*] Developers developers developers developers
...
Absolute expiration times track any changes in the system time; relative expiration times are not affected by system time changes.
2024-04-23 23:20:53 +01:00
0164919cd9
[+] while_bc
2024-04-13 22:49:05 +01:00
9f5c0e559c
[*] Minor ConditionVariableNT optimization (SteadyClockNS() may syscall under vms)
2024-04-11 19:58:42 +01:00
ec44cc1d69
[*] Ensure these fallback primitives can be accessed by -> operator
2024-03-27 03:19:18 +00:00
03623dfa48
[*] c111dee8
cont. Simplification of if (SignalSpuriously()) AddWatcher() continued
2024-02-14 01:03:14 +00:00
c111dee855
[*] Harden WinXP-7 semaphores [ 2b0ed797
cont] [more paranoia]
...
[*] Dont overspin spurious modernnt condvar wakes
[*] Revert 2943ffdb's add waiter, if under modern nt
1: While spuriously waking a blocked keyed event, don't leave the condition variable in a state where signals can be ignored.
2024-02-11 06:22:19 +00:00
2b0ed79729
[*] NT Condvar hardening: Windows XP-7 hardening of the spin condition when racing against multiple threads
2024-02-08 13:14:18 +00:00
899e505b1e
[*] NT Win8+ FastPath: Fix missing BSL
2024-02-04 17:24:46 +00:00
62b6fa20f8
[*] Update the copyright header of most of the primitives
...
[*] Fix generic mutex abs yield always returning true
2024-01-29 14:48:04 +00:00
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 signal
2024-01-28 08:23:13 +00:00
d1c668b2c1
[*] wtf happened here? what the actual fuck ( 5cc811be19
5 months ago)
2024-01-27 09:15:31 +00:00
cf3d4fc001
[*] Amend 4fcdc798
WoA configuration
2024-01-23 18:21:10 +00:00
4fcdc798cf
[+] AuWoASemaphore.hpp configuration
2024-01-22 08:32:30 +00:00
34e49d2d10
[*] Removed redundant branches from AuThreadPrimitives
2024-01-21 21:15:57 +00:00
0d6d073b85
[*] No way should we be using DWORDs here
2024-01-07 02:26:34 +00:00
49a6173011
[+] Improved SMT yielding
...
[+] Clocks.aarch64.[h/c]pp
2024-01-02 05:54:22 +00:00
6037d14674
[-] hadnt fully removed the aggressive context switch thing from the old rwlock impl
2023-12-30 21:58:52 +00:00
4e0c68d7ad
[*] fix posix cont (crit) 3c19c7a5
2023-12-30 17:59:45 +00:00
3db7f527f4
[*] Extend paranoia
2023-12-30 14:56:17 +00:00
3c19c7a56e
[*] Fix posix WoASemaphoreImpl
2023-12-30 14:31:37 +00:00
ba6162a7ad
[*] An MSVC bug, but not really.
2023-12-30 00:25:53 +00:00
5862dbeacc
[+] New generic primitives
...
[-] AuSemaphore.Unix.hpp
[*] Moved the old pthread based primitives to _removed/*.bak
[+] AuWoASemaphore.Unix.cpp
[+] AuWoASemaphore.Unix.hpp
2023-12-29 16:12:14 +00:00
9c86d1c899
[*] Linux clean up (?) (+typo)
2023-12-23 03:16:43 +00:00
a932aa57d2
[*] Formatting pissing me off
...
[+] using AuWorkerId = AuAsync::WorkerId_t;
[+] using AuWorkerPId = AuAsync::WorkerPId_t;
[+] using AuWorkerID = AuAsync::WorkerPId_t;
2023-12-16 06:42:37 +00:00
0747ff230e
[*] Thread primitives optimization
...
[*] Fix wake on address regression
2023-12-10 21:38:41 +00:00
8005b67d82
[*] :/
2023-12-08 13:03:14 +00:00
367118ab0c
[*] (NT Condvar) Minor performance fix
...
[*] (NT Condvar) Suspected XP-Win7 deadlock
2023-12-06 19:15:06 +00:00
8b4ad9795c
[*] Update the FutexSemaphore to wake no more than the requested wake count
...
[*] Cleanup NTs semaphore
2023-12-06 11:17:50 +00:00
0c1c6d7c24
[*] Formatting regressions (+ 1x double-based RNG regression)
2023-12-01 03:43:06 +00:00
43583a1748
[+] IRWLock::CheckSelfThreadIsWriter
2023-12-01 01:15:35 +00:00
22f2e73954
[+] ConditionEx::WaitForSignalAbsNS
2023-11-29 06:08:09 +00:00
e071b3d509
[+] WaitOnAddress[Steady](..., AuOptional<bool> optAlreadySpun = {}) arguments
...
[+] ...slight UWP optimization?
[*] Lift WoA limitation
2023-10-30 15:29:20 +00:00
718b5a9316
[*] Nt Condvars: I'm paranoid about this potential race condition
2023-10-20 10:04:06 +01:00
23ddcf9ba1
[*] Trivial XP+ semaphore optimization for high wake counts
2023-10-12 17:00:13 +01:00