Commit Graph

39 Commits

Author SHA1 Message Date
f2e3ceef99 [+] Au[Futex]Countdown 2024-06-30 05:40:13 +01:00
c3e898d53d [*] Redo d520b0ce with the lost semaphore copy described in the commit comment
(wtf? did i stash something at the wrong time?)
2024-05-28 19:28:08 +01:00
d520b0ce42 [*] I'm going to let the reference waitaible/woa/futex primitives be copy and movable now.
condvars -> cannot matter, you're creating a new object
mutex -> cannot mater, you're creating a new object, perhaps copy assignment under lock might be required depending on the parent. either way, a copy ctor is not required
semaphore -> copy state in case of the timelime barrier use case. semaphores emulating condvars and similar logic wont mind the overshoot. best case, we do want to copy the previous state as the initial count. worst case, your code is fundamentally broken.
2024-05-28 00:42:24 +01:00
30b0fce882 [*] Updated/added FutexBarrier comments and updated AuThreadings README 2024-05-27 14:35:10 +01:00
62917318af [+] (reference futex primitive) AuFutexMutexSpecial = AuThreading::Waitables::FutexWaitableNoVTblMovable
[+] (reference futex primitive) AuFutexMutexSmallest = AuThreading::Waitables::FutexWaitableNoVTblMovableSmallest

...because i cant be arsed
2024-04-16 04:30:31 +01:00
0164919cd9 [+] while_bc 2024-04-13 22:49:05 +01:00
d14ba6cfd4 [+] AuThreading::EWaitMethod
[+] AuThreading::TryWaitOnAddressSpecial
[+] AuThreading::TryWaitOnAddressSpecialEx
[+] AuThreading::WaitOnAddressSpecial
[+] AuThreading::WaitOnAddressSpecialSteady
2024-03-12 22:50:22 +00:00
99533c456d [*] Amend 6913daae 2024-03-10 09:57:27 +00:00
6913daae7d [+] bool AuFutexSemaphore::AcquireUntilExactlyEqualAbsNS(AuUInt32 uValue, AuOptional<AuUInt64> qwTimeoutAbs)
[+] bool AuFutexSemaphore::AcquireUntilAtleastAbsNS(AuUInt32 uValue, AuOptional<AuUInt64> qwTimeoutAbs)
2024-03-10 09:28:50 +00:00
cc4d97d6e7 [+] bool AuFutexSemaphore::LockUntilEqualAbsNS(AuUInt32 uValue, AuOptional<AuUInt64> qwTimeoutAbs) 2024-03-10 00:43:17 +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
daeb5ba06f [*] Reference futex semaphore fix timeout = 0 under ::LockNS 2023-11-18 09:19:10 +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
0f62b03da0 [+] AuFutexBarrier::EnterTimedEx 2023-09-20 17:32:17 +01:00
7efde62c3c [+] AuFutexBarrier 2023-09-20 05:18:50 +01:00
36a72228db [*] Cleanup/formatting of SMT yields 2023-09-06 17:01:01 +01:00
3d8dd991e0 [*] Adjust non-AURORA_RUNTIME_FORCE_ADAPTIVE_FUTEX futexes 2023-09-06 16:08:41 +01:00
de25694416 [*] bonk (use AuAXXX atomics) 2023-09-02 04:55:43 +01:00
5cf7533eab [*] Linux and UNIX QOL 2023-08-27 12:42:10 +01:00
87c3ac790d [*] FutexCondWaitable::NotifyOne was bothering me 2023-08-26 18:43:57 +01:00
346a9f3bde [*] More aggressively wake up reorder prone (unlikely) condvars under broadcast (unlikely) 2023-08-26 15:56:59 +01:00
3898a41198 [*] Adopt new ROXTL atomics
...AuAtomicLoad + AuAtomicClearU8Lock
2023-08-23 22:03:00 +01:00
03a3532a20 [+] Option macro: AURORA_RUNTIME_FORCE_ADAPTIVE_FUTEX 2023-08-22 13:58:17 +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
a60a1b3088 [*] dont assume these condvar paths cant underflow 2023-08-21 00:25:29 +01:00
58302586a9 [*] Minor optimizations: AuThreading::Waitable::Futex* 2023-08-20 17:11:50 +01:00
0927d51a53 [-] Deprecation of Aurora::Threading::Waitables 2023-08-20 13:35:50 +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
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
412cdfb28b [+] FutexSemaphoreWaitable 2023-08-19 20:36:57 +01:00
0b2abc49fb [+] A small header only futex 2023-08-19 20:09:32 +01:00
e43145dc8e [*] This is seriously stupid but these legacy sewage classes can be upgraded for the hell of it 2023-07-09 21:46:15 +01:00
d755a9d651 [*] Massive perf boost by removing atomic and
[*] Refactor ambiguous IWaitable::Lock(timeoutMs) to LockMS to prevent final using collisions
2023-04-03 08:21:44 +01:00
e82ec4a343 [+] IWaitable::LockNS(...)
[+] AuThreading.WakeAllOnAddress
[+] AuThreading.WakeOnAddress
[+] AuThreading.WakeNOnAddress
[+] AuThreading.TryWaitOnAddress
[+] AuThreading.WaitOnAddress
[*] Further optimize synch primitives
[+] AuThreadPrimitives::RWRenterableLock
2023-03-12 15:27:28 +00:00
1d943af9b9 [+] NS readmes 2022-06-12 18:28:51 +01:00
be7e9271e6 [+] Added casts for pointer types
[*] Nuke more std:: references
2022-02-19 11:43:57 +00:00
eb4a495199 Initial Commit 2021-06-27 22:25:29 +01:00