Commit Graph

1160 Commits

Author SHA1 Message Date
524365b5da [*] Handhold non-MSVC compilers 2023-08-23 16:38:22 +01:00
0c5d140bd4 [*] Autoset bPlatformIsSMPProcessorOptimized to false on singlethreaded systems 2023-08-23 16:03:22 +01:00
d79cb4f3ca [*] RWLock: WakeOnAddress optimization on wait to prevent mutex congestion on modern OSes 2023-08-23 15:37:55 +01:00
30fc75cbab [*] Clang 15 build regression: AuList<T> before T definition 2023-08-22 20:17:57 +01:00
a4d317a48d [*] Reoptimize semaphore wait paths 2023-08-22 15:28:09 +01:00
03a3532a20 [+] Option macro: AURORA_RUNTIME_FORCE_ADAPTIVE_FUTEX 2023-08-22 13:58:17 +01:00
d25e6ef7f3 [*] zoomzoom 2023-08-22 13:15:45 +01:00
7ad725ca04 [+] Global adaptive spin 2023-08-22 13:01:06 +01:00
ccfd0fafab [*] Why must all languages be garbage at expressing life-span of constness?
This is const-correct, as in, we don't expect to modify the pointer; you dont need to be a writer
This was const-correct, as in, this field better be a volatile block of memory you expect to update - plz dont to any retarded assumptions based on it being "const," compiler.
2023-08-22 11:08:56 +01:00
3747fb7c6f [+] ThreadingConfig::uUWPNanosecondEmulationMaxYields
[+] ThreadingConfig::bUWPNanosecondEmulationCheckFirst
2023-08-22 09:56:32 +01:00
cf363b9f5b [*] Ensure this never throws 2023-08-22 09:45:32 +01:00
76ac770674 [*] Update a handful of condvar cas's and account for laziness along the way 2023-08-22 09:44:54 +01:00
cd362db7af [*] Deaf, dumb, and blind 2023-08-21 19:20:52 +01:00
fa170c413d [*] More compact Linux primitives 2023-08-21 19:17:05 +01:00
e8f445c463 [*] Linux build regression / AuProcesses API change 2023-08-21 17:48:48 +01:00
5cc811be19 [*] More compact Win32 primitives! 2023-08-21 17:34:24 +01:00
869512e651 [*] Optimization: Remove two stupid branches in RWLock 2023-08-21 16:33:32 +01:00
f847ab049a [+] ThreadingConfig::bPreferRWLockReadLockSpin 2023-08-21 16:25:51 +01:00
e1f384de2e [*] RWLock: improper upgrade handshake
The switch over to two condvars still doesnt seem right
2023-08-21 16:20:52 +01:00
681c4b9158 [*] RWLock: revert this branch to checking for 0 and 1 remaining readers
[*] Formatting
2023-08-21 16:08:30 +01:00
e2909ebe74 [*] RWLock: Upgrade UpgradeReadToWrite sleep path 2023-08-21 16:02:55 +01:00
68b4fe5f8b [*] RWLock: not implementing LockAbsMS and LockAbsNS can hurt the hotpath 2023-08-21 15:50:45 +01:00
d1b1bfb221 [*] Caught an issue with RWLock: cant reenter unlocked reentrance mutex. 2023-08-21 15:39:56 +01:00
631ffab1a2 [*] stupid formatting crash 2023-08-21 15:32:22 +01:00
a60a1b3088 [*] dont assume these condvar paths cant underflow 2023-08-21 00:25:29 +01:00
3fe2d15a2f [+] AuProcesses::StartupParameters::environmentVariables
[+] AuProcesses::StartupParameters::bInheritEnvironmentVariables
[+] AuProcesses::StartupParameters::handleOutStream
[+] AuProcesses::StartupParameters::handleErrorStream
[+] AuProcesses::StartupParameters::handleInputStream
[+] AuProcesses::StartupParameters::optAffinity
2023-08-20 23:58:32 +01:00
58302586a9 [*] Minor optimizations: AuThreading::Waitable::Futex* 2023-08-20 17:11:50 +01:00
b8d4e02ab5 [+] Aurora::Threading::GetThreadingConfig
[+] Aurora::Threading::SetThreadingConfig
[*] Save a few bytes in Aurora::ThreadingConfig
2023-08-20 16:23:03 +01:00
2a82e406a3 [+] AuBinarySemaphore (shorthand) 2023-08-20 14:43:00 +01:00
08f30017b8 [*] regression: b236469d06 cont 2023-08-20 13:41:53 +01:00
0927d51a53 [-] Deprecation of Aurora::Threading::Waitables 2023-08-20 13:35:50 +01:00
71617ca66e [*] Format SMT spin 2023-08-20 09:50:41 +01:00
f1a08d25e7 [+] AuUInt32 GetTotalSpinCountTimeout()
[*] Fixup FutexWaitable
2023-08-20 09:47:31 +01:00
2d2d66f410 [*] FutexCondWaitable infinite sleep fix 2023-08-19 22:29:09 +01:00
202df79d0b [+] (shorthand) AuCondEx 2023-08-19 22:27:26 +01:00
7ce89a143f [+] FutexCondWaitable
[+] (shorthand) AuMutex
[+] (shorthand) AuSemaphore
[+] (shorthand) AuRWRenterableLock
[+] (shorthand) AuRenterableMutex
[+] (shorthand) AuRWLock
[+] (shorthand) AuCond
[+] (shorthand) AuCondMutex
[+] (shorthand) AuSpinLock
[+] (shorthand) AuFutexCond
2023-08-19 22:25:31 +01:00
fd643b81ce [+] AuFutexMutex
[+] AuFutexSemaphore
(...aliases)
2023-08-19 20:39:13 +01:00
b236469d06 [*] Made WakeOnAddress trigger pointers always const 2023-08-19 20:37:24 +01:00
412cdfb28b [+] FutexSemaphoreWaitable 2023-08-19 20:36:57 +01:00
0b2abc49fb [+] A small header only futex 2023-08-19 20:09:32 +01:00
2fae266876 [*] Fix WakeOnAddress constness of the comparison argument 2023-08-19 19:48:24 +01:00
fa34f7dcef [*] Regression in 262d76dd 2023-08-19 19:04:30 +01:00
8874fd9810 [*] Cache Win8+ check 2023-08-19 18:49:16 +01:00
19224d2eed [*] Default back to zero. Do not throw off other threads if only used once 2023-08-19 18:39:13 +01:00
ab4971ef9c [+] Linux threading options 2023-08-19 18:33:54 +01:00
8bf6bdd963 [+] More threading options
[+] AuThreading::SetSpinCountTimeout
[+] AuThreading::SetThreadLocalAdditionalSpinCountTimeout
2023-08-19 18:16:48 +01:00
e6bf022bef [*] Atomic SOCK_CLOEXEC-awareness on some UNIX systems 2023-08-19 15:06:59 +01:00
ef4dc9bc18 [*] Alternative panic path for older Win32 targets 2023-08-19 13:30:44 +01:00
7fb8b89def [*] Some unwanted indirect branching is still bleeding in; mark more primitive classes as final 2023-08-19 11:41:37 +01:00
92ebafecab [*] Suppress a number of antisemitic clang warnings 2023-08-18 23:32:46 +01:00