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