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
4240966512
[*] Two trivial changes (not fixing or improving anything)
2023-08-18 15:53:38 +01:00
7dd6145dc1
[*] Always use unsigned integers under the semaphore classes
2023-08-18 15:26:31 +01:00
2a1556d80c
[*] Optimize Linux semaphore
2023-08-17 23:06:02 +01:00
04956bedba
[*] Shorten the expected overhead of some Linux primitives
2023-08-13 20:09:58 +01:00
6ec2fcc4b6
[*] Added timeout awareness in ConditionEx; returns false on timeout
...
[*] Updated Linux SOO sizes
2023-08-12 11:18:19 +01:00
7962772c62
[+] Added Linux-specific condvars and condmutex
2023-08-12 11:11:12 +01:00
737d3bb4d6
[+] AuProcAddresses.Linux.*
2023-08-12 10:16:20 +01:00
1f173a8799
[*] Begin resolving 8 months of Linux neglect
2023-08-11 16:51:42 +01:00
9a2e5674e8
[*] RWLock improvements
2023-07-30 11:23:40 +01:00
c889af13e5
[*] bNoThreadNames option wasnt respected
2023-07-30 10:00:54 +01:00
ceb5b2961e
[+] FALLBACK_WAKEONADDRESS_SUPPORTS_NONEXACT_MATCHING
...
[+] ThreadingConfig::bPreferEmulatedWakeOnAddress
2023-07-30 09:52:41 +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
5e94be7487
[*] ConditionEx::WaitForSignalRelativeNanoseconds -> WaitForSignalNS
2023-07-29 09:52:59 +01:00
b411c710d1
[+] IConditionVariable::WaitForSignalNS
2023-07-25 15:59:04 +01:00
76262c2e3e
[*] Trivial Win8+ condvar broadcast improvement (pragmatism)
2023-07-25 15:28:02 +01:00
1a383f8157
[*] Two annoying formatting issues in RWLock
2023-07-25 12:57:47 +01:00
66cfbb5351
[+] FlexibleConditionVariable::WaitForSignalRelativeNanoseconds(AuUInt64 uRelativeNanoseconds)
...
[+] FlexibleConditionVariable::WaitForSignalRelativeNanoseconds(Threading::IWaitable *pWaitable, AuUInt64 uRelativeNanoseconds)
[+] FlexibleConditionVariable::WaitForSignalRelativeNanoseconds(AuUInt64 uRelativeNanoseconds)
[*] Refactor FlexibleConditionVariable
2023-07-25 12:38:49 +01:00
dab6e9caee
[*] Refactor: FeaturefulCondition -> FlexibleConditionVariable
...
[+] SOO for FlexibleConditionVariable
2023-07-25 12:27:08 +01:00
daf6108902
[*] Removed retarded code inspired by late 90s - 2003 Microsoft Andy-IQ engineering
...
This was bothering my autism
2023-07-25 11:57:22 +01:00
b48966a39e
[*] Caught uninitialized member
2023-07-25 02:12:19 +01:00
d45dc977d8
[*] NT: Further reduce Win32 link-time requirements cont ( 1948dd0c
)
2023-07-24 12:48:42 +01:00
788dde684b
[*] Windows Vista, UWP, and Windows 11: Move Windows 7 and 8 SetThreadGroupAffinity symbol from the IAT to AuProcAddresses.NT.[c/h]pps object
...
[*] Update the READMEs support table
2023-07-14 16:33:26 +01:00
8a4fc0d9c3
[*] Amend runtime config typo: Prefer*
...
[-] Redundant AuTime header (ExtendedTimer.hpp)
2023-07-13 19:50:18 +01:00
8bf351e007
[*] NT Win8+ fix: improper condvar wake up
...
[*] Fix kThreadIdAny regression
2023-07-11 00:54:54 +01:00
c90a13ad95
[*] Minor NT optimization: move branch
2023-07-10 20:06:18 +01:00
a977f0d1b5
[*] NT: backport unix optimization - no spin during spurious wake up
2023-07-10 13:12:17 +01:00
536522743a
[*] Move this branch in NTs condvar
2023-07-10 12:31:06 +01:00
8c84ecf892
[*] Win8+: Experimental primitive improvements by taking notes from Win7 cycle pinching
...
[*] +regression in condvar
2023-07-10 01:13:55 +01:00
355f7db711
[*] Forgot to reintroduce these: 75b71275
(cont)
2023-07-09 22:34:31 +01:00
75b71275e7
[*] Made past and present NT condvar optional spin steps configurable via the runtime config
2023-07-09 20:52:31 +01:00
03dbfeefe1
[*] Enhance Windows 7 scheduling resolution
2023-07-09 12:56:35 +01:00
627bdddfdc
[*] Ensure AuProcAddresses.NT.* is used for all dynamically linked symbols
2023-07-09 10:03:29 +01:00
94e2f7924e
[-] More redundant code from WakeOnAddress
2023-07-06 09:47:46 +01:00
b90feae7d0
[-] Remove preemptive POSIX optimization
...
This'll just get in the way of Linux optimizations for the sake of trying to hit the correct yield period without a spurious wake up - all in one shot.
2023-07-06 09:41:09 +01:00
e2758ea243
[-] Remove unused code from WakeOnAddress
2023-07-06 09:37:58 +01:00
99e8c68c62
[*] Update a Win8+ sync branch; can back out earlier
2023-07-05 19:32:01 +01:00
e2accb900b
[*] Begin work around for use after thread-local free; WaitOnAddress emulation
2023-07-05 18:25:07 +01:00
894df69fe0
[*] remove redundant branch from sync primitive
...
[*] optimize event
2023-06-28 02:24:53 +01:00
a454a2d71e
[*] Sync primitive improvements
...
[*] Reverted a change for UNIX: always never-spin acquire under observational lock
[*] Decreased common case of syscall operations under Linux and UNIX
[*] Unix signaling: prevent waits while during condvar wake up by unlocking before the signal
[*] NT no wait: semaphores must not spin under lock
2023-06-26 08:59:49 +01:00
fa90463a73
[*] im not sure why this was written like this
2023-06-23 22:36:13 +01:00
0d05fd3d33
[*] Minor mostly unnoticeable primitive improvements
2023-06-23 21:37:04 +01:00
2d6dca4e21
[+] 32bit SOO sizes for sync primitives under x86_32/MSVC
...
[*] Optimize the write-biased reentrant read-write lock down to 88 bytes on MSVC x64
2023-06-17 17:08:58 +01:00
451b9025c0
[*] Fix major recent regressions
...
amend: 48075bfd
amend: 25b933aa
amend: f50067e6 (to be overwritten)
et al
2023-06-17 15:12:16 +01:00
48075bfda7
[*] cleanup: added gUseNativeWaitSemapahore
2023-06-16 00:06:32 +01:00
25b933aafa
[*] Fixed regression in RWLock size without sacrificing on features
...
(TODO: I would like to WoA optimize it for modern oses at some point)
2023-06-16 00:02:42 +01:00
e11028bb03
[*] Timeout division: ensure this never deadlocks
2023-06-15 21:15:58 +01:00
74b813f051
[*] Bloat RWLock by adding a separate yield queue for writers (we were already writer biased)
...
This will help us reduce cpu usage and latency at the cost of 32 bytes.
We are now hopelessly oversized: 136 bytes for a single primitive. 104 was barely passble.
2023-06-15 20:54:19 +01:00
d389f9dda3
[*] Re-optimize the primitives for Windows 8+ on top of a Windows XP+ core
2023-06-15 20:52:28 +01:00