Commit Graph

109 Commits

Author SHA1 Message Date
7001a97870 [*] Retard proof AuWorkerID 2024-02-25 23:26:44 +00:00
f68ac4a328 [*] Added more instances of AURT_ADD_USR_DATA in interface decls 2024-02-25 22:54:22 +00:00
493f449d1d [*] Major Linux build regressions 2024-02-23 12:44:43 +00:00
7b59cab36e [*] eepy 2023-12-31 22:39:31 +00:00
8005b67d82 [*] :/ 2023-12-08 13:03:14 +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
a189151c59 [+] AuAsync::IThreadPool::GetIOProcessor
[+] AuAsync::IThreadPool::GetIONetInterface
[+] AuAsync::IThreadPool::GetIONetWorker
[+] AuAsync::IWorkItem::SetSchedByLoopSource
2023-12-01 09:22:51 +00:00
e037fc214a [*] Begin cleaning up AuAsync (2/?)
6af9940b, ???
2023-11-11 10:11:09 +00:00
df784c45b8 [+] IWorkItemHandler::ProcessInfo::reschedSteadyClockAbsNs 2023-10-31 21:07:51 +00:00
ceb67798f1 [+] IThreadPool::IncrementAbortFenceOnPool
[+] IThreadPool::IncrementAbortFenceOnWorker
[+] IThreadPool::QueryAbortFence
[+] IThreadPool::QueryShouldAbort
2023-10-24 15:33:30 +01:00
f6437ef66e [-] Engine 0.0/1.0 async 2023-09-22 06:07:03 +01:00
5727acfe55 [*] AND'd waterfall failures 2023-09-16 18:07:37 +01:00
f1e9aa1d22 [+] AuAsync::DispatchOn 2023-09-15 16:49:48 +01:00
addd4080b2 [*] Adjust PId_t::pool null behaviour 2023-09-15 16:48:55 +01:00
d25e6ef7f3 [*] zoomzoom 2023-08-22 13:15:45 +01:00
f265ca267a [+] IThreadPool::AddDependency 2023-08-13 09:30:17 +01:00
bde0014d16 [*] Did I forget half-way through edcc9efac37919f25838f6cc66cdd32892492ff2? 2023-08-12 14:15:51 +01:00
1f173a8799 [*] Begin resolving 8 months of Linux neglect 2023-08-11 16:51:42 +01:00
0f12603390 [+] AuAsync::NewWorkFunction
[+] AuAsync::IThreadPool::NewWorkFunction
[+] AU_DEBUG_MEMCRUNCH
2023-08-10 03:36:19 +01:00
dd13098022 [*] Transition to dynamic tick-based scheduling
[*] Re-do AuAsync reference counting
[+] IWorkItem::SetSchedSteadyTimeNsAbs
[*] Irrelevant IIOProcessor sources are now discarded in evaluating whether or not a thread-pool in special running mode should shutdown
[*] Transition WorkItems to only use steady time
[*] Refactor AsyncConfig
[*] Drop default SMT spin time from hundreds of cycles to ~32 so that we can sit nicely at the bottom of task manager unless the application calls for extra responsivity
2023-08-09 03:21:14 +01:00
a1b07c634a [+] AuVoidTask
(https://devblogs.microsoft.com/oldnewthing/20190116-00/?p=100715)
[*] Amend coroutines Awaitable to prevent use after free
2023-07-08 15:07:40 +01:00
69a5bb8061 [*] Remove redundant sync primitive from AuFuture
[*] Amend AwaitableVoid
2023-07-08 13:08:04 +01:00
730d338c17 [*] Coroutine interopability: failed AuFutures are now indicated via AuOptionalEx returned by co_await 2023-07-08 12:53:31 +01:00
edcc9efac3 [*] Optimize AuFuture memory usage 2023-07-08 12:39:02 +01:00
fae92993be [+] Coroutine interopability 2023-07-08 12:31:49 +01:00
b60b580d62 [*] Waterfall fix 2023-05-25 03:10:12 +01:00
26f581736a [+] Futures with an error value
[+] Added (made public) AuFuture::CompleteCallback_f
[+] Added (made public) AuFuture::ErrorCallback_f
2023-05-25 02:38:41 +01:00
7cf042d99c [+] AuFuture
[+] AuWaterfall
2023-05-25 02:11:03 +01:00
6af9940bd4 [*] Rewrite a bit of AuAsync
(maybe 1/3 of a rewrite)
2023-05-25 01:55:55 +01:00
0b265c80cf [*] ::run across threads should block until shutdown
[*] kanker that needs to be rewritten
2023-05-24 08:19:47 +01:00
64af4d0fa8 [+] AuAsync::IThreadPool::PollAndCount
[+] AuAsync::IThreadPool::RunAllPending
2023-03-05 12:55:07 +00:00
8a2947ffc5 [+] RMD128+BScFwd based HashCash (bcrypt DoS mitigation, acc creation, antibot, etc)
[*] Refactor bcrypt api: HashPW[Ex] -> HashPassword[Ex]
[+] ByteBuffer::GetOrAllocateLinearWriteable
[+] ByteBuffer::Can[Read/Write](n)
[+] ByteBuffer::GetLinear[Read/Writable]able(n)
[*] Split RNG.cpp into two files
[+] EHashType::eSHA2_48 (_32, _64 was already in place. missed 48/384 bit)
[+] AuCrypto::HMAC and IHMACContext
(AuHashing)
[+] EHashType::eSHA3_28
[+] EHashType::eSHA3_32
[+] EHashType::eSHA3_48
[+] EHashType::eSHA3_64
(AuCrypto)
[+] EHashType::eSHA2_48_384
[+] EHashType::eSHA2_64_512
[+] EHashType::eSHA3_28_224
[+] EHashType::eSHA3_32_256
[+] EHashType::eSHA3_48_384
[+] EHashType::eSHA3_64_512
[*] (IRandomDevice) class -> struct
[*] Bugfix: cast in Promise<SuccessValue_t, ErrorValue_t>::WriteIntoError
[+] Missing AuHashing namespace alias
[*] Time util: pad ms when fraction of a second to 3 digits
2022-09-19 02:34:57 +01:00
60574f5236 [*] Amend functional promise: fixed OnSuccess cast and added default template type 2022-08-21 22:47:02 +01:00
7df6614839 [?] english 2022-08-21 05:09:41 +01:00
1341f805b0 [*] Lite clean up/Refactor 2022-08-20 07:53:48 +01:00
42b364840e [*] Cleanup Async.NT.cpp
[*] Fix bug in IOProcessor where work items were not enough to cont execution in a loop checking ::HasItems
[+] PromiseCallbackFunctional constructor with one functor arg
2022-08-18 17:19:32 +01:00
08ff087f42 [+] AuAsync::PromiseCallback<Resul_t, Error_t>
[*] Adjust compression defaults
2022-08-16 08:41:32 +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
2470cbc12a LAAAAAIIIIIIIIN 2022-07-21 23:23:16 +01:00
8fcebb91a3 [+] AuAsync IPC promises - New Early Impl
> Added AuNullPromise
> Added AuPromise<Out_t>
> Added AuInOutPromise<In_t, Out_t>
2022-07-19 16:29:20 +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
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
056ffc4b68 [*] Update asynctypes.hpp header, added hashcode and equals operator to two types that should've had them defined already. 2022-06-01 20:18:12 +01:00
db3f41233b [*] Solve possible spinlock during exception under conin callback and print
[*] Update linkage
2022-05-30 09:46:24 +01:00
286ae14a7b [*] Refactor WorkItemHandler EProcessNext -> ETickType
[*] AuAsync aue 1 regression
2022-05-17 00:41:27 +01:00
1c7267b9d8 [*] Update how AuAsync handles SysPump - we should really deprecate it. 2022-05-09 19:27:36 +01:00
415116c891 [+] Linux Async IO 2022-04-13 12:00:35 +01:00
3defb1bb14 [+] Linux Watcher
[*] Expand watcher API -> Breaking NT
[*] Reexpand loop queue API -> Breaking NT
[*] Linux CPUInfo clean up
[*] Bug fix: mkdir should set execute flag... because directories are special
[*] Refactor: Cleanup base64
[*] Bug fix: UNIX path normalization
[*] Bug fix: missing O_CREAT flag (au auto-creates)
[*] Normalize line endings
2022-04-10 16:40:49 +01:00