Commit Graph

29 Commits

Author SHA1 Message Date
0571aa8dd4 [+] AU_LOCK_GLOBAL_GUARD
[+] AuThreading::GetShutdownReadLock()
2024-09-09 03:46:38 +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
9d4c5a8cfc [*] (optimize) RunOSWaitOnAddressEQNoTimedNoErrors wasn't NT aware 2024-04-28 14:24:13 +01:00
d14ba6cfd4 [+] AuThreading::EWaitMethod
[+] AuThreading::TryWaitOnAddressSpecial
[+] AuThreading::TryWaitOnAddressSpecialEx
[+] AuThreading::WaitOnAddressSpecial
[+] AuThreading::WaitOnAddressSpecialSteady
2024-03-12 22:50:22 +00:00
3004c3de19 [+] Experimental AuThreading::TryWaitOnAddressUntilEqualEx, WaitOnAddressUntilEqual, WaitOnAddressUntilEqualSteady 2024-03-02 23:23:16 +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
acbd62666f [*] WoA: This member must be marked volatile due to over ::WaitOn optimization of assumed single-threaded control flow 2024-01-19 21:37:31 +00:00
298b095cc1 [*] WhyOnAddress 2023-12-21 22:41:16 +00:00
9527a076cf [*] Update WoA 2023-12-11 18:58:17 +00:00
1a71a7dd41 [+] WOA_SEMAPHORE_MODE 2023-12-10 19:25:31 +00:00
3f43c320c5 [*] WoA fixes 2023-12-10 19:11:10 +00:00
f79be42357 [*] Clean up dead-code in AuWakeOnAddress.cpp 2023-12-05 07:56:57 +00:00
274a0e1783 [*] Remove deprecated #if 0s from AuWakeOnAdress.cpp 2023-12-01 01:45:02 +00:00
0283186046 [*] Expand WakeOnAddress array and minor lookup optimization 2023-12-01 01:35:10 +00:00
63b72a9fb5 [*] Resolve WakeOnAddress emu-mode bug and a potential dead-lock 2023-11-17 23:11:58 +00:00
e071b3d509 [+] WaitOnAddress[Steady](..., AuOptional<bool> optAlreadySpun = {}) arguments
[+] ...slight UWP optimization?
[*] Lift WoA limitation
2023-10-30 15:29:20 +00:00
5cc811be19 [*] More compact Win32 primitives! 2023-08-21 17:34:24 +01:00
b236469d06 [*] Made WakeOnAddress trigger pointers always const 2023-08-19 20:37:24 +01:00
c306c12763 [*] Improve WakeOnAddress by hash binning by kDefaultWaitPerProcess instead the previous iteration before BST or HashTree lookup 2023-07-30 09:34:39 +01:00
94e2f7924e [-] More redundant code from WakeOnAddress 2023-07-06 09:47:46 +01:00
e2758ea243 [-] Remove unused code from WakeOnAddress 2023-07-06 09:37:58 +01:00
28201db2d7 [+] Improve WoA on Windows 8+
[+] AuThreading::WaitOnAddressSteady
2023-06-15 20:44:27 +01:00
1a8acbdde5 [+] By-raw pointer WOA lists
(also they are now fairer)
[+] Steps towards future proofing NT (not the future proofing itself)
2023-06-12 18:31:44 +01:00
1bda1f469f [*] simplify wake on address emulation
Windows 7 reporting improved time to wake, but it is still averaging about the same... everything.
2023-06-11 19:13:37 +01:00
6974c713f7 [+] Allocationless thread primitives
[*] Rename SMPYield to SMTYield
2023-03-21 03:19:22 +00:00
14c7d538e1 [*] Fix up modern WakeOnAddress fast path, of, well, WakeOnAddress
[*] Clean up AuEvent
[*] Dropped default spin power
2023-03-13 23:57:32 +00:00
e82ec4a343 [+] IWaitable::LockNS(...)
[+] AuThreading.WakeAllOnAddress
[+] AuThreading.WakeOnAddress
[+] AuThreading.WakeNOnAddress
[+] AuThreading.TryWaitOnAddress
[+] AuThreading.WaitOnAddress
[*] Further optimize synch primitives
[+] AuThreadPrimitives::RWRenterableLock
2023-03-12 15:27:28 +00:00