7680a86d5a
[*] ...same applies to these
2023-08-26 18:46:00 +01:00
610f2c73a0
[*] Optimize >4 thread wakeups on <= Win7, under Semaphore
2023-08-26 18:08:33 +01:00
346a9f3bde
[*] More aggressively wake up reorder prone (unlikely) condvars under broadcast (unlikely)
2023-08-26 15:56:59 +01:00
3ca8de022e
[*] Fix issues related to inconstent retardation in the asinine freetard world
...
GNU and its consequences have been a disaster for the human race
2023-08-26 15:04:48 +01:00
4a73f7250f
[*] Another uniproc test
2023-08-25 12:42:31 +01:00
337df8040c
[*] Move uniprocessor check
2023-08-24 15:12:49 +01:00
100964ac87
[*] NT Semaphore optimization
2023-08-24 13:55:31 +01:00
935d1b6ab2
[*] RWLock: added another SignalManyWriter condition to ensure upgrades never get missed
2023-08-24 11:45:15 +01:00
1ecd46ddbf
[*] Ad-hoc system thread signals
2023-08-24 10:43:33 +01:00
937f123dad
[*] RWLock: Futex waiter path: force read semantics
2023-08-24 10:20:43 +01:00
49ced3fcc6
[*] Always attach to the main thread context on init
2023-08-24 10:17:53 +01:00
31319981ba
[*] Two trivial Linux tweaks
2023-08-23 23:45:26 +01:00
3898a41198
[*] Adopt new ROXTL atomics
...
...AuAtomicLoad + AuAtomicClearU8Lock
2023-08-23 22:03:00 +01:00
293a8ddd66
[*] Simplify when to call _beginthreadex (we probably shouldn't)
2023-08-23 19:11:21 +01:00
61eaa701b7
[*] MSVC compilation regression
...
(theres no way in fuck vista or xp will run with >= 32 threads. hell, you can barely expect the acpi and boot video drivers to work.)
2023-08-23 19:05:32 +01:00
10e95fb5ae
[*] Begin reworking Linux/POSIX PRIOs
2023-08-23 18:17:15 +01:00
9c04b31da3
[*] Don't warn on XP/Vista
2023-08-23 17:09:19 +01:00
921fee1b8d
[+] IAuroraThread::SetNoUnwindTerminateExitWatchDogTimeoutInMS
2023-08-23 17:01:56 +01:00
412630077d
[+] ThreadingConfig::bPreferWaitOnAddressAlwaysSpin
2023-08-23 16:45:08 +01:00
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
a4d317a48d
[*] Reoptimize semaphore wait paths
2023-08-22 15:28:09 +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
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
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
a60a1b3088
[*] dont assume these condvar paths cant underflow
2023-08-21 00:25:29 +01:00
b8d4e02ab5
[+] Aurora::Threading::GetThreadingConfig
...
[+] Aurora::Threading::SetThreadingConfig
[*] Save a few bytes in Aurora::ThreadingConfig
2023-08-20 16:23:03 +01:00
08f30017b8
[*] regression: b236469d06
cont
2023-08-20 13:41:53 +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
b236469d06
[*] Made WakeOnAddress trigger pointers always const
2023-08-19 20:37:24 +01:00
2fae266876
[*] Fix WakeOnAddress constness of the comparison argument
2023-08-19 19:48:24 +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
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
28201db2d7
[+] Improve WoA on Windows 8+
...
[+] AuThreading::WaitOnAddressSteady
2023-06-15 20:44:27 +01:00
17c50eff64
[*] fix old unix sync regressions
...
do not hold switching lock while spinning as originally written and intended
2023-06-13 12:05:55 +01:00
b91ce52195
[*] Not sure how WOA regressed
2023-06-12 19:35:54 +01:00
1a8acbdde5
[+] By-raw pointer WOA lists
...
(also they are now fairer)
[+] Steps towards future proofing NT (not the future proofing itself)
2023-06-12 18:31:44 +01:00
50413f36e5
[*] keyed events should yield indefinitely in their failure path
...
(amended one day later: removed one of the fixes. this is gonna apply to just one place for now)
2023-06-12 15:51:54 +01:00
123e34d224
[*] been meaning to remove this debug preemptive wake up for awhile
2023-06-11 21:35:47 +01:00
1bda1f469f
[*] simplify wake on address emulation
...
Windows 7 reporting improved time to wake, but it is still averaging about the same... everything.
2023-06-11 19:13:37 +01:00
5b495f7fd9
[*] sched: minor clean up
2023-06-11 17:52:50 +01:00
50f25e147a
[*] improve latency (i think - benchmark pending)
2023-06-07 11:45:14 +01:00
81b3550825
[+] AURT_ADD_USR_DATA usage across some relevant contexts
2023-06-04 17:28:29 +01:00
b423ce14b1
[*] change-up cond-vars mutual exclusivity locking
2023-05-31 05:34:36 +01:00
5cb56da924
[*] missed break [regression in 53df1ee8
]
2023-05-31 05:21:05 +01:00
055b149e11
[*] remove verbose "!= 0"
2023-05-31 04:38:05 +01:00
f92a19621a
[*] adjust undershooted ms scale sleeps to smt spin, then yield, in an effort to match nano-scale sleeps within 10s of kns
2023-05-30 13:12:53 +01:00
53df1ee81d
[*] Work on AuConditionVariable.NT some more
...
[*] Fix high cpu regression in 6af9940b
2023-05-30 12:53:26 +01:00
9f59d4f921
[*] Fix TLS thread index out of bounds access
2023-05-09 14:21:55 +01:00
f842573352
[*] copy/pasted function parity
2023-05-08 15:21:15 +01:00
a2cfb7765b
[*] i want every bit of performance i can squeeze out of old windows operating systems
2023-05-08 15:16:06 +01:00
08f790c3af
[*] Update fenceless notes in AuMutex.NT.cpp
2023-05-08 14:46:20 +01:00
fca5b90b85
[*] adjust tls coefficients
2023-04-30 14:46:36 +01:00
7c1a1566fd
[*] missing tls impersonation in bd94b73d
2023-04-30 09:05:14 +01:00
448d840e4c
[*] missing free in bd94b73d
2023-04-30 09:02:13 +01:00
bd94b73dde
[+] New TLSView implementation
...
[+] AuTLSVariable
2023-04-30 08:24:27 +01:00
36dee459ca
[*] TryLockRead was unware of RWRenterableLocks specifications
...
(not an issue for regular blocking lock paths)
2023-04-24 19:39:36 +01:00
8dcf857da5
[*] updated comments
2023-04-23 19:39:54 +01:00
f74a41e286
[*] Refactor our thread primitives for an SOO change, where the SOO[_t]-suffix is no longer required, resulting a new type conflict issue
2023-04-23 19:25:37 +01:00
2a33d61e63
[*] further deprecate high res clock
...
[*] further posix resolution reporting
2023-04-22 22:58:20 +01:00
92af491fe8
[*] if (count == 1)
*
2023-04-21 18:52:30 +01:00
0c494cb99a
[*] another preemptive linux fix. i missed a step in calculating the mask (i didnt calculate the mask at all)
2023-04-16 23:58:27 +01:00
5d979bff6d
[*] I dont think this path is really hit but still we shouldnt wake up after 4 seconds under here
2023-04-12 12:26:53 +01:00
abed78a15f
[*] QtCore6 crash on Windows 7
2023-04-06 22:24:47 +01:00
6e7cee70e1
[*] added mandatory smt spin here
2023-04-05 09:42:48 +01:00
6c25b5a5e6
[*] atomicity bug fix: hold up this is bad
2023-04-03 10:13:29 +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
39072499dd
[*] remove dumb cas loops
...
[*] refactor
2023-04-01 09:53:00 +01:00
440b5877b2
[*] link errors
2023-03-22 16:59:21 +00:00
c22a13ec56
[*] preemptive linux fix [?]
2023-03-22 15:19:32 +00:00
8272959249
[*] Further compress
2023-03-22 13:42:07 +00:00
6974c713f7
[+] Allocationless thread primitives
...
[*] Rename SMPYield to SMTYield
2023-03-21 03:19:22 +00:00
5d8f4e6901
[*] Further optimize
2023-03-17 15:41:05 +00:00
a1f4614316
[*] i see a possible bug
2023-03-16 22:18:52 +00:00
1476307a60
[*] Force this optimization under nonship builds
2023-03-16 19:24:05 +00:00
e5981a5747
[*] Reintroduce the older implementation based on Vista sync primitives when best implementation under NT 5.1 apis isn't available (microsoft being cunts under the false guise of sandboxing xbox and uwp)
2023-03-16 18:25:23 +00:00
02684d543e
[*] New NT mutex should carry the fail under this unlikely path
2023-03-16 17:33:29 +00:00
2863d2c910
[*] pls do a zoomie
2023-03-15 17:54:59 +00:00
b4b7e4a083
[*] Repressing these vtables helps us get our time to wake down
2023-03-15 16:53:43 +00:00
89057139b3
[*] Further work on the legacy NT primitives
...
(can still be improved, optimized, and bug fixed)
(will add a build toggle between the old SRW and this)
(...and ironically it seems like our time to wake times are worse now)
2023-03-15 16:13:09 +00:00
0ad854284e
[*] NT Condvar: Clean up
2023-03-15 08:43:46 +00:00
49bfecee32
[*] i need sleep and i broke the core primitives
2023-03-15 08:30:21 +00:00
f354a202ad
[*] i forgot to remove this member and we took a massive sizeof hit for it
2023-03-15 03:23:17 +00:00
f24a1c1924
[*] im not even going to switch to a cross arch to assume this isnt going to compile
...
(actually it looked even worse under compiler explorer. this patch is much better)
2023-03-15 03:12:10 +00:00
e88718a48b
[*] Windows 7 optimization [?]
2023-03-15 02:38:26 +00:00
2fc4564f5d
[*] Amend legacy primitive
2023-03-15 01:03:42 +00:00
13028d767b
[*] Cleanup optimization commit
2023-03-15 00:48:37 +00:00
046b70d7bc
[*] [Pre-Win8.1] Optimize for modern nt instead of windows vista synch in legacy path; yes, this is how windows 7 and vista synch is somewhat implemented.
...
...on apis that predate those kernel revisions. so, technically this might be able to run on xp.
[*] GetThreadCookie optimization for all platforms
2023-03-15 00:35:29 +00:00
14c7d538e1
[*] Fix up modern WakeOnAddress fast path, of, well, WakeOnAddress
...
[*] Clean up AuEvent
[*] Dropped default spin power
2023-03-13 23:57:32 +00:00
1ba0519d8d
[*] Amended UNIX yield paths
2023-03-12 20:59:03 +00: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
88b0270435
[+] Broke out NT LoadLibrary
s to a dedicated root AuProcAddesses.[NT.]hpp
2023-02-16 16:01:21 +00:00
9d71b5c04f
[*] Found another race condition
2023-02-11 19:37:30 +00:00
7d46679969
[*] Fix RWLock regression in previous commit: ( 8ff81df1
)
...
...despite being under lock for lock paths, we now need everything to be atomic.
[*] ...fixed monotonic timeouts under rwlock
2023-01-30 16:48:40 +00:00
8ff81df129
[*] Fix deadlock involving WaitFor under ThreadPool (shutdown race)
...
[*] Optimize mutex lock out of RWLockImpl::TryLockWrite
[*] Force all relevant members of RWLockImpl to be volatile just bc lol (afaik we cant justify it yet; however, i want to minimalize the risk of future issues in this type)
2023-01-30 14:35:48 +00:00
51a2816f3f
[*] Merge GTK JS's branch fix for async shutdown
...
[+] IConditionMutex::TryLock()
... Timed is still too much of an ask for this interface, i think. There's a good reason as to why this isn't a iwaitable. This condvar interface must be as common and primitive as possible.
2023-01-30 13:26:17 +00:00
d780df6ceb
[*] Transition legacy pre-steady clock calls to steady time
...
[*] Improved e-core throttling logic under systems without ecores
2023-01-23 15:27:58 +00:00
fbca5f22c5
Regression in: d1451142
2022-12-29 21:02:58 +00:00
0cdbc34c06
[*] Optimize allocations out of RWLock
...
[*] Fix linux regression
2022-12-29 09:42:02 +00:00
d14511429a
[*] Optimize event primitive
2022-12-29 00:02:56 +00:00
2209aeb7a8
[+] Linux: semaphores and mutexes directly over futexes. Move UNIX pthread condvar mutex into the condvar mutex class.
...
[*] BSD: Rewrote fundamentally flawed pthread_mutex class code to use MONOTONIC clock time
[+] Linus SwInfo: Added enterprise check for RedHat
2022-12-28 23:44:45 +00:00
dbbcd14b57
[*] Optimize for Win8.1 scheduler that can bypass SRW CVs
...
[*] Update readme
2022-12-28 10:50:30 +00:00
766be57a46
[+] Linux build [again]
...
[+] ProcessSectionViewReserved.Unix.cpp
[*] Fix missing ::Flush() member on ViewWriter
2022-12-16 00:41:01 +00:00
cbad382b6a
[+] Windows 7 support
2022-12-14 01:35:18 +00:00
267c2216b0
[+] UDP over socket API via existing INetSrvDatagram layer
...
(...missing send)
[+] AuIO::Buffer::ViewReader
[+] AuIO::Buffer::ViewSeekableReadable
[+] AuIO::Buffer::ViewWriter
[*] Clean up AuCompression
[*[ AuLog messages must always crunch for memory
[*] Various bug fixes
[*] Refactor+clean up
2022-12-12 23:50:05 +00:00
7be2d3fbdc
[+] AuUtility::ThroughputCalculator
...
[+] AuNet::ISocketStats
[+] AuNet::ISocketChannel::GetRecvStats()
[+] AuNet::ISocketChannel::GetSendStats()
[+] AuIO::IOProcessor::RunTickEx(AuUInt32 dwTimeout)
[*] Refactor clock APIs
[+] Documentation in headers
[+] AuIO::IIOPipeWork::GetStartTickMS()
[+] AuIO::IIOPipeWork::GetLastTickMS()
[+] AuIO::IIOPipeWork::GetPredictedThroughput()
[+] AuIO::IIOPipeWork::GetBytesProcessed()
2022-12-06 22:58:15 +00:00
72dc0d715e
[*] Begin enforcing steady time
...
[+] IOProcessor::WakeupThread
[+] NT: Begin hacking in timeBeginPeriod (must spam it in some places)
[+] ConsoleTTY (more specifically the win32 calls) are too slow to run on the mainthread. Delegate to worker.
[*] AuTime.CurrentClockSteady
[*] AuTime.CurrentClockSteadyMS
[*] AuTime.CurrentClockSteadyNS
2022-11-28 16:01:08 +00:00
f86665fd36
[+] Net: TCP servers can now be multi-threaded
...
[+] Net: Added missing UDP send datagram
[*] IO bug fixes
2022-11-17 20:58:48 +00:00
898c0ced37
[*] Refactoring in progress...
2022-11-17 08:03:20 +00:00
673872f632
[*] Fix critical bug in rwlock (few commits ago. still havent updated submodules so its ok)
...
[*] IAsyncTransaction::uStartOffset should be u64
2022-11-09 00:33:14 +00:00
d63571e4b5
[+] AuCompression::CompressionInterceptor
...
[+] AuCrypto::CBC::CBCContext
[+] AuFS::ReadDirRecursive
[+] AuFS::DirDeleter
[+] AuCrypto::PBKDF2
[+] AuCrypto::AES::CBCEncrypt
[+] AuCrypto::AES::CBCDecrypt
[+] AuCrypto::TDES::CBCEncrypt
[+] AuCrypto::TDES::CBCDecrypt
[+] Optimize read write locks
[*] Added `ContextFlags = CONTEXT_ALL` to Win32 PlatformWalkCallStack
2022-11-06 13:23:22 +00:00
48a8e4ae5a
[+] Catch around all async DispatchFrames. Will add optional forced panic later.
...
[*] Fix thread handle bug on non-au threads
2022-10-14 07:16:28 +01:00
cdb10eb3c6
[*] Refine Linux threads... They were still problematic :(
2022-08-15 03:31:35 +01:00
58d53c92c1
[*] Move setjmp to beginning of task invoker function for Linux thread kills
2022-08-15 00:00:52 +01:00
e30e004d04
[*] It'll complain but this shutsdown (with grug crying) relatively cleanly
2022-08-14 22:09:25 +01:00
7fd217a50e
[*] Various teardown related fixes/changes under UNIX
2022-08-14 14:41:19 +01:00
0fe4ad2087
[*] Wouldn't it be cool if Linux could safely exit under other conditions without core dumping?
2022-08-14 12:01:54 +01:00
88887434ae
[+] IAuroraThread::UnsafeForceTerminateSignal
2022-08-14 00:32:39 +01:00
64cb7404ba
[+] Near 1:1 Linux IPC Pipe compared to the NT equivalent (~= CreateNamedPipeA(nMaxInstances=1, dwOpenMode=PIPE_ACCESS_DUPLEX, dwPipeMode=PIPE_TYPE_BYTE))
...
[+] Ability to bypass blocking limitation of certain io_submit reads, if the blocking subsystem is a pollable stream (ie: a pipe).
[*] Fixed major Linux bug where LoopQueue items weren't being submitted, if no dequeues were in the same tick
[*] Fix various Linux pipe related bugs
[*] Fix futex bug where the callback was nulled on server-release
2022-08-09 07:48:29 +01:00
5b5b6fa920
[*] Solve NT build regression introduced in a Linux commit
2022-08-07 23:42:13 +01:00
331f139fdd
[*] Fix: Termination of Linux C++ code without C++ land whining about NPTL no-rethrow
2022-08-06 20:53:21 +01:00
fd0c5b51b2
Further Linux support
...
[+] Begin work on IO futexes for io release on process/thread exit
[+] Linux ::readdir iteration
[+] AuConsole buffering API
[*] Fix sleep as to not get interrupted by signals
[*] Switch the type of FS lock used under Linux
[*] Linux: Use new IPCHandle encoding scheme
[*] Fix undefined behaviour: unintialized timeout values (AuLoop/Linux)
[*] Fix undefined behaviour: ConsoleTTY clear line was called of a color of a random value on stack
[-] Remainings of std dir iterator
[*] Fix pthread_kill (aka send signal to pthread handle) always kills process. This is what you expect bc signal handler inheritance.
[*] Reformat the build Aurora.json file
[+] Added clang warning ignores to the build file
[*] Fix: UNIX need to use STDOUT_FILENO. Was using CRT handle in place of fd by mistake.
[+] Linux implementation for IO yield (AuIO::IOYield() - UNIX::LinuxOverlappedYield())
[*] Fix: Linux async end of stream processing. res 0 = zero bytes consumed. <= was detecting this as an error of code 0. Should succeed with zero bytes.
[+] Linux LoopQueue missing epilogue hook for the IO processor
[*] Various refactors and minor bug fixes
[*] Linux fix: Handle pipe EOS as zero
[*] Linux fix: thread termination via a user signal of 77. Need a force terminate.
[*] IPC handle: fix improper int to bool cast in the header setup within ToString
[*] Linux fix: HWInfo CPU topology regression
[-] Linux fix: remove SIGABRT handler
[*] Missing override in compression, exit, and consoletty headers.
[+] Unix Syslog logger backend
2022-08-02 05:52:57 +01:00
433898709e
[*] Check for null handle under LSHandle bc win32 apis are inconsistent as shit
...
[*] _beginthreadex returns null, nonex returns -1, and it doesnt fucking work with affinity but seems to work with name updates. i dont care to fix this yet. fuck microsoft.
[*] NT: preempt process watch thread of leaders instead of syncing to the process under a watch guard on free (evil, we should use a builtin nt threadpool. also cant be arsed to resolve)
2022-07-08 22:58:49 +01:00
d47aeda082
[+] EConanonicalInput::eTab
...
[+] if ^::eString, [+] ...isControlSequence, isAltSequence, isShiftSequence
[*] Update semaphore from class to struct types
[*] GetProfileDomain and frens should check the result string length before returning true
2022-06-16 02:29:55 +01:00
5d2b642ac0
[*] Huge refactor - Move Aurora::[IPC and Loop] to Aurora::IO
2022-06-12 01:29:28 +01:00
48e1ed80ae
[*] Further malding
2022-06-02 18:05:38 +01:00
a5757c31e0
[*] Cheeky AuThreadPrimitives refactor
2022-06-01 22:49:38 +01:00
021959bdfc
[+] Harden linux sleep against interrupts
2022-05-13 18:53:20 +01:00
2ecaef35fb
[+] Higher-res sleep under NT w/ NtDelayExecution
2022-05-13 18:44:44 +01:00
0a6e1adfbf
[*] Update UNIX mutex primitive
2022-04-13 16:06:26 +01:00
9eecdcb0a9
[*] Update UNIX high speed thread primitives to better account for interrupts
2022-04-13 15:42:36 +01:00
2b798bde97
[*] Win32 build regression (1/2)
2022-04-10 17:20:00 +01:00
cf219eabaa
[+] Initial attempt at an epoll backend
...
[+] Added comments in nt opener
[*] Fixed rng close
[*] Fixed possible aarch64 crash where unix thread ep function didnt return a value
2022-04-09 16:53:14 +01:00
fb287e6128
[*] Always reset the sigaction mask (sigemptyset)
2022-04-07 05:41:16 +01:00
d81d4564e9
[+] Initial Linux exit signal handler
...
[*] Linux Semaphore bug (apparently I can't write loops)
[*] Linux sleep bug
2022-04-07 05:35:17 +01:00