f2e3ceef99
[+] Au[Futex]Countdown
2024-06-30 05:40:13 +01:00
0555e8cc32
[*] Update: WakeOnAddress.hpp comments
2024-06-30 05:13:55 +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
a5a9fa3887
[*] Updated AuTheading::WaitFor prototype
...
[+/*] Missing YieldPoll MS prototype in public header
2024-05-27 15:04:21 +01:00
30b0fce882
[*] Updated/added FutexBarrier comments and updated AuThreadings README
2024-05-27 14:35:10 +01:00
e4fa5d549e
[*] Refactor IAuroraThread
2024-05-27 13:28:57 +01:00
e86a414837
[*] d589ce3549
missed header update
2024-05-11 18:51:16 +01:00
631624dc55
[*] Linux build regressions, and shrink the size of Linux RWLocks to 48 bytes from 64
2024-05-07 14:57:19 +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
a80f6091c5
[*] Updated WakeOnAddress comments
2024-03-13 09:37:07 +00:00
d14ba6cfd4
[+] AuThreading::EWaitMethod
...
[+] AuThreading::TryWaitOnAddressSpecial
[+] AuThreading::TryWaitOnAddressSpecialEx
[+] AuThreading::WaitOnAddressSpecial
[+] AuThreading::WaitOnAddressSpecialSteady
2024-03-12 22:50:22 +00:00
41412876b6
[*] Improved AuThreads::Spawn prototypes with new optional finalizer arg
2024-03-10 10:22:50 +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
13b61f166c
[*] Updated registered LTC digest indices
2024-03-03 03:26:01 +00:00
3004c3de19
[+] Experimental AuThreading::TryWaitOnAddressUntilEqualEx, WaitOnAddressUntilEqual, WaitOnAddressUntilEqualSteady
2024-03-02 23:23:16 +00:00
7038787001
[+] Thread name identities
2024-01-23 23:03:52 +00:00
7b59cab36e
[*] eepy
2023-12-31 22:39:31 +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
9c86d1c899
[*] Linux clean up (?) (+typo)
2023-12-23 03:16:43 +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
b65d0032dd
[*] Minor header updates
2023-12-05 10:16:22 +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
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
529eba18c7
[+] IAuroraThread::GetThreadCreationTime
2023-10-13 21:43:59 +01:00
7739652ad3
[*] Minor include header improvements
2023-09-22 00:46:51 +01:00
f59de8b4ae
[*] Two typos and change bPreferEmulatedWakeOnAddress to true under NIX
2023-09-20 18:32:02 +01:00
0f62b03da0
[+] AuFutexBarrier::EnterTimedEx
2023-09-20 17:32:17 +01:00
d123850ac0
[+] AuThreads::Spawn
2023-09-20 17:28:36 +01:00
7efde62c3c
[+] AuFutexBarrier
2023-09-20 05:18:50 +01:00
42a8218916
[+] AuInitOnce::TryCall
2023-09-20 04:10:53 +01:00
595846cb75
[*] MSVC isn't always inlining lock guards
2023-09-19 02:49:48 +01:00
ff0e32ce02
[*] Improve AuInitOnce API with an 8 byte variant and a locker API
...
[+] AuInitOnceSmall
2023-09-17 15:42:38 +01:00
d2bf01ffa3
[*] InitOnce should be marked final, even though we cant strip those 8 vtbl ptr bytes
2023-09-17 15:08:48 +01:00
afa2cb5944
[+] AuInitOnce
2023-09-17 13:26:37 +01:00
d661363247
[*] Not deprecated enough
2023-09-12 21:31:34 +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
f08f4a476a
[*] Ehhh. I never liked how I implemented the fallback for MS absolute waits.
...
We should calculate it via a delta between current NS time to avoid NS/MS clock overflows.
Some platforms and points in time may be more resistant than others. Let's assume monotonic time could be really high, this should help mitigate some bad math and branching caused by timeout overflows caused by stupid MS-precise abs waits (not sure why people would favour these over abs ns)
2023-09-12 17:10:51 +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
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