Commit Graph

368 Commits

Author SHA1 Message Date
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
1fa12f141f [*] Fix TryWaitOnAddressSpecialEx from UntilEqual -> Special update 2024-03-24 15:30:38 +00:00
c87ec4e4b6 [*] Linux build regressions 2024-03-21 00:32:13 +00:00
5c34a8435b [*] d14ba6cf revert one force inline 2024-03-12 23:32:32 +00:00
d14ba6cfd4 [+] AuThreading::EWaitMethod
[+] AuThreading::TryWaitOnAddressSpecial
[+] AuThreading::TryWaitOnAddressSpecialEx
[+] AuThreading::WaitOnAddressSpecial
[+] AuThreading::WaitOnAddressSpecialSteady
2024-03-12 22:50:22 +00:00
afbe942ffd [*] These config fields were switched to abs values, not relative to the user signal range 2024-03-08 21:59:50 +00:00
2163a58892 [*] Linux runtime regressions 2024-03-04 11:55:54 +00:00
65c78ef182 [*] Move some platform specific code from AuWakeOnAddress to AuProcAddresses.*.* 2024-03-03 00:28:36 +00:00
9591fc9d30 [*] Harden detached spawn 2024-03-02 23:47:58 +00:00
3004c3de19 [+] Experimental AuThreading::TryWaitOnAddressUntilEqualEx, WaitOnAddressUntilEqual, WaitOnAddressUntilEqualSteady 2024-03-02 23:23:16 +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
12fd03a6dd [*] WoA acbd6266 cont (?). I think I'm still getting messed up by over-optimizations as opposed to there being a genuine bug in the primitives. Made the accesses to the comparison volatile during deep sleeps, whereas before we were just casting to regular integer pointers or performing a memcmp.
00:29:11:820	15>  1 functions were new in current compilation
00:29:11:820	15>  51 functions had inline decision re-evaluated but remain unchanged
(it did *something*)
2024-02-08 01:55:16 +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
9e7615d80c [*] Same thread name identity in these constructors 2024-01-23 23:31:09 +00:00
7038787001 [+] Thread name identities 2024-01-23 23:03:52 +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
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
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
be2b781ed6 [*] mitigations and clean up before two major commits 2023-12-26 21:01:29 +00:00
9c86d1c899 [*] Linux clean up (?) (+typo) 2023-12-23 03:16:43 +00:00
298b095cc1 [*] WhyOnAddress 2023-12-21 22:41:16 +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
35fb78787d [*] Symmetry in WoA 2023-12-11 20:40:41 +00:00
9527a076cf [*] Update WoA 2023-12-11 18:58:17 +00:00
0747ff230e [*] Thread primitives optimization
[*] Fix wake on address regression
2023-12-10 21:38:41 +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
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
f79be42357 [*] Clean up dead-code in AuWakeOnAddress.cpp 2023-12-05 07:56:57 +00:00
91cff7ae26 [*] Another WakeOnAddress optimization 2023-12-05 07:15:54 +00:00
b9e8b138f7 [*] Further optimize AuWakeOnAddress (signaling) 2023-12-02 03:35:24 +00:00
0c1c6d7c24 [*] Formatting regressions (+ 1x double-based RNG regression) 2023-12-01 03:43:06 +00:00