Commit Graph

494 Commits

Author SHA1 Message Date
7fb73ccdb4 [+] IPC Logger: Added optional stream frame header (single u32) option
[*] FIX: Missing `this->isStream = isStream;`
[*] FIX: Blocking APIs under async objects under NT were using illegal calls that were for some reason not failing
2022-07-05 20:48:33 +01:00
c20b802da7 [*] "Improve" (bug fix) and "clean up" (hardly) legacy simple parse list tokenizer 2022-07-05 05:58:27 +01:00
97069a1515 [*] Undo fail on pipe broken, restore bytes written = zero behavior for reusable pipes. Will match on Linux. 2022-07-05 04:17:28 +01:00
c0ee48435c [*] More IO bug fixes; a double free, statement that should be uncommented, and wrong IO handle under Async.NT.cpp read 2022-07-04 23:42:02 +01:00
ee07505952 [*] Fix win32 cwd under processes 2022-07-04 03:24:34 +01:00
f8c45613a1 [*] I'm a dumbass. This was accounted for a long ass time ago 2022-06-29 21:50:37 +01:00
bc1296a35c [*] Deprecate NT impl of latching completeness of async transactions 2022-06-29 19:47:32 +01:00
803f097f84 [*] Typos and comments 2022-06-29 14:56:59 +01:00
70418df761 [+] Added extended IO apis
> StartSimpleLSWatchEx
> StartSimpleIOWatchEx
> StartIOWatchEx
[*] Update README
2022-06-28 16:04:07 +01:00
250d3fd11e [*] Passive crinkling of today : Async.NT.cpp can now be aborted. Will port identical behavior to Linux. 2022-06-24 20:33:55 +01:00
bf6f13095c [*] Linux builds again. Still behind 2022-06-23 13:25:20 +01:00
3a76aa6d69 [*] Fix IOPipeProcessor was checking against base + length instead of write head to determine stream consumer completion
[*] Fixup IPCPipe.NT recycling, including proper disconnect acknowledgment and removal of atomic release hack
[*] End of stream callback hack in Async.NT for IPC. net requires something else; this hack will do
[*] Fix io spin: bShouldReadNext wasn't reset on end of frame
2022-06-22 21:24:04 +01:00
0c3344fe46 [+] IIOSimpleEventListener
[+] IOProcessor::StartSimpleIOWatch(const AuSPtr<IIOWaitableItem> &object, const AuSPtr<IIOSimpleEventListener> &listener)
[+] IOProcessor::StartSimpleLSWatch(const AuSPtr<Loop::ILoopSource> &source, const AuSPtr<IIOSimpleEventListener> &listener)
[*] IOAdapterAsyncStream should reset the transactions IO state upon reaching end of segment (should this be per tick?) or upon stream error - otherwise, we end up spinning on a stuck event forever
[*] Fix non-linear path under read of the AuByteBuffer
[*] Fix various other nonlinear conditions under AuByteBuffer
[*] IOProcessor releases registered io item from queue upon request
[*] Fix ConsoleMessage::Write -> enumeration of color should be casted to a uint8
[+] Error telemetry under async task creation
[*] Fix various lock ups and non-blocking spins related to erroneous InternalRunOne impl. Residual preemptive batching was fucking with modern io.
[*] Cleanup TaskFrom/JobFrom. More work required to clean up legacy piss
2022-06-22 14:42:17 +01:00
7ea75b4014 [*] Until its not 2022-06-21 07:12:11 +01:00
7fde7d04fb [+] EPipeCallbackType
[+] IIOBufferedStreamAvailable callback
[+] IIOProcessor singleshot work items / IIOProcessorWorkUnit
[+] IOPipeCallback description of a pipes destination
[+] IOPipeInputData description of a pipes source
[+] IOPipeRequest, IOPipeRequestAIO, IOPipeRequestBasic
[+] IPipeBackend hooks for on start/end hooks of IOPipeRequestBasics
[*] Update IOAdapaterAsyncStream implementation to better support caller buffering
[*] Updated IAsyncStreamReader to include a warm/dequeue API for direct async usage
[*] Fix NT IO regressions
[*] Fix ThreadPool shutdown on an unregistered thread
[*] Fix race condition in Async.NT.cpp & fix signalable state to closely match Linux (dunno how this was passing before)
[*] Refactor IOProcessorWorkUnit -> IIOProcessorWorkUnit
[*] Update experimental header to include the changes
2022-06-21 05:49:36 +01:00
7432aa5cac [+] IIPCLogger structure to allow access to the underlying IPC pipe of an ipc logger 2022-06-17 09:22:24 +01:00
3985318566 [+] IPCSink 2022-06-17 00:05:32 +01:00
85cace020a [*] dumb msvc build error 2022-06-16 02:36:35 +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
9fb9eb4fd2 [*] Amend panic 2022-06-16 01:58:29 +01:00
5aea27d56d [*] "Improve" win32 AuDebug 2022-06-16 01:51:19 +01:00
942373328c [*] Refactor exchange TTY function mislabeled as set 2022-06-14 18:33:34 +01:00
a740e86a9a [*] C warnings 2022-06-14 17:19:22 +01:00
17b1a738ca [*] Solve a few compiler warnings. Mostly unrealistic u32 <-> u64 casts in element iteration and string operations we can reasonably ignore 2022-06-14 17:12:21 +01:00
f166849e9f [TODO: BLOCK 2 PROGRESS] 2022-06-14 02:14:51 +01:00
0a2d4cde04 [+] readme.md 2022-06-12 21:18:26 +01:00
8bd7f698e3 [*] Merge branches (includes fixes) 2022-06-12 19:23:18 +01:00
b029f7692f [*] Linux build errors 2022-06-12 14:53:35 +01:00
5d2b642ac0 [*] Huge refactor - Move Aurora::[IPC and Loop] to Aurora::IO 2022-06-12 01:29:28 +01:00
44108a322e 2/3 of the IO update (very early implementation)
[+] TTYConsole::GetPaddingTopOfLog,GetPaddingHeadOfLog,GetPaddingTopOfLog [+ set variants]
[+] IO::IOYield()
[+] IO::IAsyncTransaction::Failed,GetOSErrorCode()
[+] IByteBufferStreamPair
[+] IIOBufferedInterceptor
[+] IIOBufferedProcessor
[+] IIOEventListener
[+] IIOPipeEventListener
[+] IIOProcessorEventListener
[+] IIOProcessorManualInvoker
[+] IIOWaitableIOLoopSource
[+] IIOWaitableIOTimer
[+] IIOWaitableItem
[+] IIOWaitableTickLimiter
[+] IOAdapterAsyncStream
[+] IOAdapterByteBuffer
[+] IOAdapterCompression
[+] IOAdapterSeeking
[*] Cleanup CpuInfo.Linux.cpp
[*] Fixup async threadpool some more
[*] LSTimer.NT.cpp updates timer object on tick state update, akin to Linux
2022-06-12 00:01:27 +01:00
4675be4d78 [*] Fix stupid link error 2022-06-07 05:29:32 +01:00
c93d6033a5 [*] i'm dumb 2022-06-06 22:36:14 +01:00
e29843dc7e [*] Beyond dumb fio offset issue 2022-06-06 22:34:49 +01:00
a59fc20d56 [+] ConsoleTTY.hpp write cmd history every 10 seconds under sys tick 2022-06-06 22:34:26 +01:00
f4515a7257 [*] Further further MALD 2022-06-03 20:28:08 +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
b500c0bd5f [+] Debug config
[*] Update legacy macros to modern pipeline under debug
2022-06-01 15:25:32 +01:00
db3f41233b [*] Solve possible spinlock during exception under conin callback and print
[*] Update linkage
2022-05-30 09:46:24 +01:00
c88925fa27 [*] ConsoleTTY flip ux after append 2022-05-28 18:47:51 +01:00
5bafce075a [*] Dumbdumb moment 2022-05-28 17:21:57 +01:00
77c74f886b [*] Update IStreamReader/Writer interfaces to be backed by an Aurora Interface
[+] Aurora::IO::WriteAll
[*] Improve legacy compression API (pt 2)
2022-05-28 12:18:00 +01:00
25a593cac5 [*] Polyfill legacy compression api into modern io era with IStream[reader/writers] 2022-05-28 10:13:58 +01:00
4bf581cd37 [*] RandomDef explicit default-ctor followed by forced null of the structure to seed with fast rng 2022-05-27 20:45:00 +01:00
e665714341 [*] Bug fix: NT registry read function conflated array length with count
[*] Locale convert wchar -> utf count was not respected under non-nt targets
2022-05-26 15:02:23 +01:00
dc59e59e2a [*] ConsoleTTY: Fix crash on arrow up 2022-05-24 07:09:42 +01:00
87c72a4aad [+] ConsoleTTY !t and page up/down 2022-05-24 06:58:06 +01:00
f178188b5b [+] ConsoleTTY !b to scroll to bottom 2022-05-24 06:37:51 +01:00
670640321d [*] ConsoleTTY UX 2022-05-23 16:10:19 +01:00
4b5bbe7be4 [*] Adjust console history behaviour 2022-05-20 11:52:30 +01:00
342db487f9 [*] AuAsync invalid self itr upon nested poll 2022-05-20 01:31:58 +01:00
fe88ae9821 [*] Another consoletty bug 2022-05-19 23:40:31 +01:00
19b29b8c08 [*] ConsoleTTY \t processing and reset history line index on enter 2022-05-19 23:28:11 +01:00
81939dd95e [*] Cursor after history up/down was acting funky. This should fix it. 2022-05-19 04:32:23 +01:00
537ffca394 [+] ConsoleTTY history (unsaved) 2022-05-19 04:21:34 +01:00
4079d471a7 [*] Fix a deadlock in auasync 2022-05-19 04:07:10 +01:00
997c7cb325 [*] Fix text input bugs 2022-05-19 03:47:42 +01:00
10702f0419 [+] Initial Aurora ConsoleTTY shell attempt 2022-05-19 00:12:52 +01:00
59ea8d1c3d [+] Try/catch around SysPump under async sched 2022-05-18 21:22:58 +01:00
a02bb0aabd [*] Early internal non-canonical TTY api 2022-05-18 19:14:24 +01:00
6fb3f3a9e5 [*] NT ConsoleTTY -> This is less glitchy 2022-05-18 02:03:53 +01:00
1d859844fd [*] Amend scroll Y 2022-05-17 17:58:29 +01:00
adcde3b0a3 [+] Internal TTY double buffeirng under NT
[+] NT: TTYScrollBuffer
[*] Move TTY under the ConsoleTTY namespace
2022-05-17 17:54:14 +01:00
de504a3a2d [*] AuAsync: remove illegal static casts 2022-05-17 02:43:40 +01:00
00c82fdbe4 [*] Update WorkItem ::WaitFor 2022-05-17 01:59:19 +01:00
2c1d22ac13 [*] Missing AU_LOCK_GUARD in IWorkItem::WaitFor non-array variant 2022-05-17 00:46:25 +01:00
286ae14a7b [*] Refactor WorkItemHandler EProcessNext -> ETickType
[*] AuAsync aue 1 regression
2022-05-17 00:41:27 +01:00
24fc2fd90d [*] Reset hashstream lock state on import/reset 2022-05-14 23:34:25 +01:00
d0c4d8cb33 Hash API polish
[+] Added IHashStream::Export
[+] Added IHashStream::Import
[+] Added IHashStream::Finalize (versus "deprecated" older api)
[+] Added EHashType eMD4, eRMD128, eRMD160, eRMD256, eRMD320
2022-05-14 21:06:46 +01:00
f182ecd986 [+] Added IOSleep.* files, API: AuIO::WaitFor(ms, waitEntireFrame) 2022-05-13 21:02:19 +01:00
86ac108f11 [*] Move AuIO::WaitMultiple
[+] AuIO::WaitMultiple2
2022-05-13 19:25:29 +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
ede223e955 [*] NT build regression from Linux land 2022-05-13 15:07:53 +01:00
23e922a396 [+] ConsoleTTY.Unix.cpp port. ConsoleTTY.cpp soon™️ 2022-05-13 13:01:49 +01:00
5ae5950bd9 [*] Bug fix: select 0 should be an error under such NB is-signaled paths 2022-05-13 12:51:00 +01:00
8fb1542d03 [*] Linux regression before ConsoleTTYs 2022-05-13 01:43:54 +01:00
2a09e62add [*] Refactor IAsyncTransaction -> Moved namespace from AuIOFS to AuIO bc other file-like APIs share the same FS implementation. IPC, process, and other namespaces have no reason to return an AuIOFS interface when dealing with pipes. 2022-05-12 09:04:32 +01:00
433154a9c6 [+] explicit EAnsiColor::eWhite and EAnsiColor::eBlack 2022-05-12 08:21:32 +01:00
95a8388807 [*] Bug fix: ConsoleTTY.NT.cpp was reporting buffer size, not screen size
[*] Move ConosleTTY.*.*pp's ready for ConsoleTTY
2022-05-12 08:06:08 +01:00
b98baea2a8 [*] 4/6 fatal bugs in auAsync 1.0 grime 2022-05-10 14:51:22 +01:00
eeaa10090d [*] 2/4 critical bugs in legacy aurora engine async subsystem 2022-05-10 14:22:37 +01:00
1c7267b9d8 [*] Update how AuAsync handles SysPump - we should really deprecate it. 2022-05-09 19:27:36 +01:00
683ed60660 [*] Bug fix: console wouldn't reset its' input buffer if it had been fully consumed in the first attempt 2022-05-09 19:26:40 +01:00
61f20b6c69 [+] Linux: missing new IAsyncTransaction::Reset method 2022-05-05 12:48:37 +01:00
0a38ffacfa [+] NT: IProcess::AsLoopSource()
[*] NT: Bug fix: our side of the process streams were not marked as FILE_FLAG_OVERLAPPED
[+] CreatePipeEx.NT.cpp
2022-05-05 11:26:21 +01:00
dfc21453ef [+] Add IAsyncTransaction::Reset
[*] Bug fixes: Async.NT.cpp
2022-05-05 11:24:44 +01:00
08b9c48f6c [*] Bug fix - NT: ConsoleStd should not close GetStdHandle (win32 - new), only CreateFileW (legacy code) 2022-05-04 22:51:47 +01:00
d5ec986e02 [+] Linux async process stream access API implementation and bug fixes in AuIOFS / Async.Linux.cpp implementation 2022-05-04 20:34:46 +01:00
9ac9b5419a [*] Fix regression in NT builds from Linux patch 2022-05-04 18:12:14 +01:00
6de5cbfb95 [+] Linux: Added bSingleshot API to timerfd backend
[*] NT: Added TTY handle static getter optimization alongside a secret setter API
[*] Made ILoopSource virtual
[+] Linux: Added console TTY stubs
[*] Renamed ConsoleTTY.Linux.cpp -> ConsoleTTY.Unix.cpp
[-] Redundant commented out shm_unlink (zero ref condition should unlink, i believe.)
[+] Added IProcess async pipe transaction getter stubs
[+] Added additional userland env lookup variables: XDG_SESSION_DESKTOP, DESKTOP_SESSION
[+] Unix: AuTime::ns2ts
2022-05-04 16:43:23 +01:00
2af66e0f71 [+] Add singleshot timer API flag 2022-05-04 14:00:26 +01:00
9f93b8a0b1 [+] 100 nanosecond resolution ILoopSource timer API (gl getting that res) 2022-05-03 18:42:14 +01:00
97cdbc9f27 [+] Overlapped stdout/in/err processes API 2022-05-03 11:10:04 +01:00
45975e4755 [+] Added console stdin loop source
[*] Fix logger color regression
[*] Fix various issues with console config struct
2022-05-03 07:19:26 +01:00
72f342e376 [*] Remove tabs 2022-05-03 05:54:24 +01:00
73173bdaae [+] A small hacky TTY interface API 2022-05-03 05:31:49 +01:00
5cd9e64992 [*] UNIX: client IPC pipes shouldn't be announced 2022-05-03 05:30:23 +01:00
1642f4c1df [*] 32bit parse regression 2022-05-03 05:29:39 +01:00
7613af2280 [*] UNIX: Attempt to peek pipe read-available if in ptr is null with FIONREAD when available 2022-05-01 20:35:46 +01:00