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
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
43583a1748
[+] IRWLock::CheckSelfThreadIsWriter
2023-12-01 01:15:35 +00:00
216aa01717
[-] Yeetus
2023-11-29 08:50:14 +00:00
22f2e73954
[+] ConditionEx::WaitForSignalAbsNS
2023-11-29 06:08:09 +00:00
f06248f687
[*] Minor WakeOnAddress optimization
2023-11-29 05:37:51 +00:00
63b72a9fb5
[*] Resolve WakeOnAddress emu-mode bug and a potential dead-lock
2023-11-17 23:11:58 +00:00
62e8625a11
[+] Aurora::Threading::TryWaitOnAddressEx
...
[*] Spin on top of Linuxs kernel spin, if in non-emu mode
2023-11-14 14:49:40 +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
09401cecd6
[*] Added call to Win32DropSchedulerResolution under sleep
2023-10-19 02:48:56 +01:00
74b8910bf9
[*] 529eba18
cont. added support for process time
2023-10-13 21:57:38 +01:00
529eba18c7
[+] IAuroraThread::GetThreadCreationTime
2023-10-13 21:43:59 +01:00
23ddcf9ba1
[*] Trivial XP+ semaphore optimization for high wake counts
2023-10-12 17:00:13 +01:00
5c29787f9c
[*] Bug fixes
2023-10-07 20:04:47 +01:00
cdad552ed0
[*] Fix OSThread regression / main thread was stalling for a few seconds on exit because the schedulers end of thread clean up was bailing out under the "pls no dtor race before the os spawn kicks in" lock path
...
TODO: destink OSThread
2023-10-01 14:12:22 +01:00
53215e57b1
[*] Harden thread entrypoints and post-call deinit
2023-09-23 20:32:01 +01:00
c3165de4cf
[*] RWLock: Disable dumb scatter switch for now
2023-09-23 02:50:54 +01:00
76bd36939e
[*] Simplify RWLock some more
2023-09-23 02:40:23 +01:00
f59de8b4ae
[*] Two typos and change bPreferEmulatedWakeOnAddress to true under NIX
2023-09-20 18:32:02 +01:00
9e1655d579
[*] Clean up RWLock
2023-09-19 17:36:21 +01:00
7477bfe56f
[*] A Linux and other OS insurance policy: rel/xref 7357764c
2023-09-19 02:05:11 +01:00
5a9292ad1a
[*] ...yes
2023-09-19 01:38:16 +01:00
7357764cfc
[*] Fix abnormal ::UnlockWrite performance under heavyweight native WaitOnAddress platforms (Linux, BSD-like, etc)
2023-09-18 18:21:46 +01:00
a96788623f
[*] Fix linux build warning and not quite complete linux ipc fix a4f6db7ec9
2023-09-17 18:36:20 +01:00
81775a76bf
[*] Linux: build regressions
2023-09-15 00:10:40 +01:00
729c9f8508
[*] Ensure WaitFor always respects 0 timeouts, no matter the flags
2023-09-12 22:06:55 +01:00
6ff27c6855
[*] This was bothering me - 4b0a7c65
cont
2023-09-12 21:56:58 +01:00
bf03124f92
[+] AuThreading::TryWait
2023-09-12 18:47:25 +01:00
8e54071d60
[-] Remove 2 year old 0.0 WaitFor back-off implementation
2023-09-12 18:30:45 +01:00
4b0a7c651a
[*] Guess I should finalize this for linux. The verbosity of writing a cas in the wait loops is stupid if we arent doing anything special with the bits.
2023-09-12 16:12:54 +01:00
403c186f0a
[*] Improve NT semaphore: use a different internal api now. Might help uncontested servers with work queues using semaphores
2023-09-12 13:28:46 +01:00
d727859cc2
[*] Linux/Modern NT regression in new optimized event wait path
2023-09-10 23:06:58 +01:00
22efbff12f
[*] 74dc6772
cont: this structure is going to be padded to 32bits anyway. this makes the atomic operations easier
2023-09-10 18:10:36 +01:00
b539cfb353
[*] 74dc6772
cont: improvements
2023-09-10 15:04:32 +01:00
74dc6772b0
[+] Non-mutually exclusive binary semaphore / event wait path
...
[+] ThreadingConfig::gPreferFutexEvent
2023-09-10 14:50:59 +01:00
48dc2e790b
[+] IEvent::TrySet()
...
[+] New atomic logic for AuEvent. With this change, I can stop slandering it as the "shit primitive."
(it's still not the best it could be, but it's an improvement over what i had before)
2023-09-10 14:04:00 +01:00
1a4a4ad863
[*] Added missing this->
s
2023-09-09 19:46:08 +01:00
dfe44317a0
[*] SMT Yield: minor branch added to SMT Yield
2023-09-09 18:09:22 +01:00
88355932c1
[*] Optimize thread configurations to be unpacked from the bitmap once at startup and during reconfigure as opposed ad-hoc
2023-09-09 17:37:14 +01:00
ca2f8fea71
[*] Mitigate Kernel32 and Rtl mixing
2023-09-09 15:29:48 +01:00
1fa063e19f
[*] Why am i calling libm/crt from here? how stupid am i
2023-09-09 15:16:06 +01:00
4ad70cadb4
[*] optimization: cea33621
cont
2023-09-09 14:38:02 +01:00
cea3362186
[*] Finally fixed an old regression: RWLock is back to being write-biased to prevent forever-read conditions
2023-09-09 13:03:02 +01:00
109b0cff3f
[*] ...and same applies to RWLock
...
(instead its pls dont use the public api instead of the internal NT apis)
2023-09-09 12:39:47 +01:00
9601fcfd39
[*] NT AuThreadPrimitives: stop using these AuProcAddresses directly
2023-09-09 12:29:43 +01:00
8e59300395
[*] Another broken Linux path
2023-09-09 12:17:40 +01:00
36a72228db
[*] Cleanup/formatting of SMT yields
2023-09-06 17:01:01 +01:00
f53508baa9
[*] Unify both SMT subloops
2023-09-04 23:03:08 +01:00
1c80e4910b
[*] RWLock: another optimization for embedded and win7 targets
2023-09-03 13:35:12 +01:00
1479bcaa22
[*] bonk
2023-09-02 21:24:37 +01:00
c2a6bd92fa
[*] Minor optimization in a shit primitive
2023-09-02 19:09:04 +01:00
0838373410
[*] NT Optimization: more aggressive semaphores to prevent atomic failures (perhaps this could be made to account for weak exchanges under different archs)
2023-09-02 19:05:07 +01:00
cc6e0358fa
[*] NT: further optimizations to solve CPU usage regressions
2023-09-02 16:11:06 +01:00