55cac676f5
[+] AuLoop::NewSemaphoreEx with max count option for in-process (not ipc) limiting the total wakes.
...
This is required for Xbox, Xbox 360, and Win32 emulators deriving a mutex via a the NT semaphore primitive instead of the builtin binary semaphore (event) and mutex.
2024-08-05 15:57:13 +01:00
5947e6a2c3
[*/+] Added internal AuLoop::WaitMultipleOrObjects function for POSIX Issue4+ users, excluding the BSDs, to optimize AuLoop::WaitForMultipleObject users. (Win32 and Xbox emulators).
...
This mitigates the epoll allocation / release under Linux.
2024-08-02 02:23:19 +01:00
67c4cdbee0
[*] TODO: fix int on both platforms
2024-08-01 13:33:36 +01:00
cc01b0557a
[*] Improve ILoopQueue::WaitAll parity (been on the todo list for, idk, 3 years)
2024-08-01 12:55:08 +01:00
8545c59cba
[*] Amend: 5cafefae
bad linux optimization (?)
2024-07-31 12:02:31 +01:00
5cafefae5d
[*] LSLocalSemaphore bug fix for scriptability. (TODO: reimpl like the event?)
...
[*] Fix: IO objects not using the explicit slow sync primitives.
Dunno how these werent refactored; then again, i never properly got around to finishing the factories for fast/slow io objects. In addition, some of these arent even accessed by the ILoopSource interface, so it's not as critical of a failure.
2024-07-30 17:53:58 +01:00
9956f1c153
[+] AuIO::Loop::kWaitMultipleFlagBreakAfterOne for Win32 WaitForMultipleObjects shim (we cannot return an array of indices to a win32 program)
2024-07-30 17:26:38 +01:00
134816e128
[*] Optimize primitives SMTYield for Alderlake+ user-space, BIOS-ring mwait, and AARCH
2024-05-03 12:22:38 +01:00
c87ec4e4b6
[*] Linux build regressions
2024-03-21 00:32:13 +00:00
2163a58892
[*] Linux runtime regressions
2024-03-04 11:55:54 +00:00
1920f5a8d5
[+] IO Thread Pool
...
[+] FileSeekingWriter
[+] ISeekingWriter
[+] AuIO::Adapters::NewAsyncTransactionFromStreamReader
[+] AuIO::Adapters::NewAsyncTransactionFromStreamSeekingReader
[+] AuIO::Adapters::NewAsyncTransactionFromStreamWriter
[+] AuIO::Adapters::NewAsyncTransactionFromStreamSeekingWriter
[+] AuIO::Async::UseSpecifiedWorkerGroup
[+] AuMemory::NewSharableResizableBuffer
[+] AuMemory::NewSharableBuffer
[*] Update comments
2024-02-26 18:12:04 +00:00
493f449d1d
[*] Major Linux build regressions
2024-02-23 12:44:43 +00:00
aa811f93aa
[*] Readd the public symbols to create base kernel io primitives for interop
2024-01-03 17:36:45 +00:00
1c0efebd87
[+] AuLoop::DbgLoopSourceToReadFd
...
[+] AuLoop::DbgLoopSourceToWriteFd
2024-01-03 01:49:15 +00:00
662dbac0c1
[+] IO completion groups
2023-12-28 16:49:11 +00:00
a2c8f036e0
[*] 1576f56d
cont (i messed up again)
2023-12-23 16:55:04 +00:00
1576f56d19
[*] Fix busted nt timeouts under loopsource waits
2023-12-23 08:03:59 +00:00
24fec2301c
[+] NtWaitForMultipleObjects awareness
2023-12-22 06:00:13 +00:00
2570aea213
[+] Clang/Win32 compilation support
2023-12-19 03:43:11 +00:00
414c736179
[+] ELoopSource expansion
2023-12-18 07:39:53 +00:00
22486b90e6
[*] NT: WaitMultipleLoopSourcesEx wasn't bypassing the wait cap
2023-12-18 07:35:24 +00:00
a3046658fe
[*] Minor update to WaitMultipleLoopSourcesEx
2023-12-11 23:34:31 +00:00
5541c25050
[+] AuIO::Loop::WaitMultipleLoopSourcesEx
2023-12-10 22:25:03 +00:00
fe529b31da
[*] ITimer comment and win32 patch
2023-12-09 12:25:46 +00:00
783bed0d85
[*] LSLocalEvent: finish optimized impl (?)
2023-12-09 11:10:02 +00:00
8944d8bd16
[+] IAsyncTimer
...
[+] IAsyncTimerCallback
[+] ETickType.hpp
[+] EWorkPriority.hpp
[+] static IThreadPool::GetSelfIOProcessor()
[+] static IThreadPool::GetSelfIONetInterface()
[+] static IThreadPool::GetSelfIONetWorker()
[-] [Source/Async/]AsyncRunnable.hpp
[*] Begin encapsulating WorkerPId_t
[*] WorkerPId_t no longer take strong pointers to prevent leaks given that these identifiers are copied and kept alive everywhere
2023-12-07 09:20:23 +00:00
e60e308087
[*] Minor WaitMultipleLoopSources optimization
2023-12-03 07:40:20 +00:00
9fea60a9ed
[*] 64ce35dd
cont
2023-12-02 11:06:49 +00:00
64ce35dd87
[*] Cont work on WaitMultipleLoopSources's yield time
2023-12-02 03:39:41 +00:00
eceb037e70
[*] WaitMultipleLoopSources optimizations cont
2023-12-01 12:31:09 +00:00
3f7f2639c4
[*] AuLoop: Fixed missing logic in a fast path
2023-12-01 12:16:47 +00:00
507f418b81
[*] Attempt to optimize AuLoop::WaitMultipleLoopSources
2023-12-01 11:20:40 +00:00
b0a7417d6f
[*] Local loopsources werent calling the parents OnTrigger
2023-12-01 11:02:15 +00:00
f05cafbff7
[*] Win32 loopqueue optimization
2023-12-01 10:36:47 +00:00
dcb27645a1
[*] bug: drop limitation in io processor
...
[*] attempting to mitigate freeze on remote start watch
2023-11-05 21:20:16 +00:00
17ca7a6bef
[*] Added SMT yield down these paths
2023-10-26 17:25:40 +01:00
4ce49941ff
[+] SysCheckNotNullMemory
...
[+] SysCheckNotNull
[+] SysCheckRetExpNotNull
[+] SysCheckRetExpNotNullMemory
2023-10-24 17:43:00 +01:00
72fd8d018e
[*] a7af61e9
cont: Potential Win32 loop queue bug fixes/improvements
2023-10-23 10:21:31 +01:00
a7af61e9bf
[*] Potential Win32 loop queue bug fixes/improvements
2023-10-22 22:12:55 +01:00
fb1920ccba
[*] Ensure the other fast paths work properly
2023-10-22 06:17:32 +01:00
591c0fe48b
[+] ILSSemaphore::AddMany
2023-10-22 06:11:39 +01:00
3d01d6cc8f
[*] Improve LSLocalSemaphore
2023-10-21 18:57:48 +01:00
a1a2d482d7
[*] everything before semaphore cast
2023-10-21 16:09:45 +01:00
f9916e0f21
[*] More NT Loop Queue fixes
2023-10-21 14:22:12 +01:00
5233dc7ac8
[*] NT fix pre/finish sleep out of balance
...
[*] Fix some more wait alls
2023-10-21 13:22:11 +01:00
c79993af74
[*] Fixup the WaitMultipleLoopSources Any path
2023-10-21 09:33:04 +01:00
f185f13dc7
[+] LSLocalEvent
2023-10-21 09:04:48 +01:00
d910c71ad8
[*] This snucked in and i forgot to enable an nt specific fast path
2023-10-21 06:57:07 +01:00
18c023acae
[*] Suppress spurious IO wakeups in WaitSingleBase
2023-10-21 06:19:51 +01:00
60bb1020ce
[+] bool WaitMultipleLoopSources(const AuList<AuSPtr<Loop::ILoopSource>> &lsList,
...
AuList<AuSPtr<Loop::ILoopSource>> &signaled,
bool bAny = true,
AuOptionalEx<AuUInt32> uTimeoutMS = 0);
2023-10-21 06:10:33 +01:00