Commit Graph

311 Commits

Author SHA1 Message Date
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
9fbdafea74 [*] x86_64 Use RDSC for more deterministic back-off durations
Well, sort of. It's more likely to be referenced against the exact frequency stated in the hard-coded CPUID vendor string.
2023-09-02 14:37:07 +01:00
de25694416 [*] bonk (use AuAXXX atomics) 2023-09-02 04:55:43 +01:00
a20e9b4954 [*] Win10/Linux regression in RWLock (again) 2023-08-31 18:41:18 +01:00