Commit Graph

969 Commits

Author SHA1 Message Date
09295e57f8 [*] TODO: sort out async run modes 2023-06-26 08:11:45 +01:00
a7730ed8ee [*] Win32: improve reporting of critical exceptions 2023-06-24 21:21:11 +01:00
752d67c0ff [*] Save/crash using this path 2023-06-24 21:10:14 +01:00
5fa8720c9b [-] Win32: Unlink Wer.lib.
Write to the registry instead.
2023-06-24 21:01:57 +01:00
07720f0379 [*] minor win32 exception handling improvements
(80faead5, ce424388 cont)
2023-06-24 20:43:32 +01:00
4c72a20ba2 [*] Win32: required to prevent leaks when invoked by Qt (todo: proper journaling of pending actions) 2023-06-24 17:41:09 +01:00
80faead53f [*] Win32: fix regression in error handling (after: ce424388 ?) 2023-06-24 13:53:32 +01:00
1783202384 [*] ConsoleTTY QOL 2023-06-24 04:47:06 +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
74e036b809 [*] NT: Switch the event primitives used in old AuLoop (Aurora::Loop - no IO) subsystem 2023-06-23 07:56:40 +01:00
47746de462 [+] Process and threaded user and kernel time keeping clocks 2023-06-19 17:48:24 +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
573031cd96 [*] idiot-proofing memory ownership 2023-06-11 15:49:39 +01:00
1f505fcf02 [+] Added explicit stream interface cache reset path under proto stacks
(amended: missed one discard)
2023-06-11 15:30:14 +01:00
98c1235554 [+] Futureproofing: AuByteBuffer flag 2023-06-10 21:50:00 +01:00
4a584ce73a [+] Future proof IProtocolInterceptorEx with an optional pParent in the only Aurora Interface methods last argument 2023-06-10 20:33:19 +01:00
90e08d534c [*] optimize the other half (aa7f783f) of compression streams when used with the interceptor interface 2023-06-10 20:03:29 +01:00
519ba4b26e [*] Fix up AuProcess version handling handling. Includes a new secret env-var.
(amended)
2023-06-08 10:29:13 +01:00
a56538a4cd [*] women 2023-06-07 21:10:29 +01:00
9f52ca0f1a [*] A patch to fix some of the regressions introduced in the first step in overhauling AuAsync
i beat my wife with cardboard spoons. jolly fun.
2023-06-07 20:35:31 +01:00
50f25e147a [*] improve latency (i think - benchmark pending) 2023-06-07 11:45:14 +01:00
aa7f783fe9 [+] Optimize half of the compression cpy operation 2023-06-05 14:55:40 +01:00
301f1a6025 [+] yes 2023-06-04 22:19:57 +01:00
8b36562cf0 [+] why not? 2023-06-04 21:18:44 +01:00
78091bf84b [+] also gonna impl this flush 2023-06-04 20:52:22 +01:00
bbd4679bed [+] AuIO::IOPipeCallback::bCloseWriter 2023-06-04 20:49:13 +01:00
bc203d8cbc [+] ProtocolPiece::GetParent 2023-06-04 19:07:26 +01:00
c9ed4b09b9 [+] Implement IStream[Read/Write].close for various IO subsystem interfaces 2023-06-04 19:02:33 +01:00
81b3550825 [+] AURT_ADD_USR_DATA usage across some relevant contexts 2023-06-04 17:28:29 +01:00
45b7bc6e99 [*] Improve arrow perf under win32 2023-05-31 08:09:44 +01:00
ce424388aa [*] fix stack-overflow reporting 2023-05-31 07:15:55 +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
fb1b016c87 [*] fix what was meant to be a warning before a crash. now return false 2023-05-25 02:53:10 +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
824602b1fa [*] i was taking a shit when i remembered our hashcash algorithm is fundamentally borked 2023-05-20 02:38:47 +01:00
b7de15d78e [*] tweak LoopQueue.nt.cpp
[*] bug fixes for running Qt alongside GTK and other loops
2023-05-16 17:11:59 +01:00
323296aa78 [*] ConvertMSToTimescale: refactor arg to u64 2023-05-12 17:49:34 +01:00
e2f16091d9 [*] amend write ahead check 2023-05-11 18:31:47 +01:00
ac4968512b [*] cleaned up an an unwanted network error from the logs by not flushing hello packets should the socket be in an unconnected state 2023-05-11 17:46:49 +01:00
5ded6a751f [+] STATUS_CONNECTION_REFUSED for some lower-level firewall drivers under Windows 2023-05-11 17:38:14 +01:00
1fa433540b [*] Experimental lower-latency IO pipes
[*] revert win32 net tx hardening - do not use the Reset function to null pSocket
[*] fix a bytebuffer circular buffer path
[*] update how TLS protocol stacks can snap the stack
2023-05-11 16:05:00 +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
1ec1d4d01e [*] update these members [ns-scale stat refactoring] 2023-05-03 13:34:41 +01:00
2fdf730263 [*] Stats now return nanoseconds timestamps 2023-05-03 08:57:21 +01:00
75ad160559 [*] cascade errors here plox 2023-05-02 11:27:06 +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
6683d3cfdc [+] IProtocolPiece.GetNextPiece
[+] IProtocolPiece.ReallocateDrainBuffer
[*] Harden protocol piece use after destroy
2023-04-29 07:00:29 +01:00
c787d85485 [*] bug: fix process time counters under win32 2023-04-29 05:26:53 +01:00
0175809d0a [*] Compression pipe now returns false should an error occur 2023-04-29 03:10:08 +01:00
4086fc94bb [*] bug fix: RNG strings werent deterministic 2023-04-28 04:59:09 +01:00
da69428d7e [+] IProtocolStack::PrependInterceptorEx
[+] IProtocolStack::PrependSingleFrameProcessor
[+] IProtocolStack::PrependSingleFrameProcessorEx
[+] IProtocolStack::GetArrayOfInterceptors
[+] IProtocolStack::GetInterceptorAtIndex
[+] IProtocolPiece::ToInputWriter
[+] IProtocolPiece::GetExtendedInterceptor
[+] IProtocolPiece::GetShortPipeInterceptor
2023-04-28 02:41:45 +01:00
f8219542c5 [*] precache socket network state errors here before the last transaction is released 2023-04-27 10:44:15 +01:00
eb4ee3143d [*] bug: missing link 2023-04-27 10:26:41 +01:00
f1e9a7262b [*] pipe processors with a stack attached to them should destroy the stack to forcefully break circular references in user code 2023-04-27 06:10:09 +01:00
f70d6392d9 [*] harden 2023-04-27 01:34:29 +01:00
efadd964be [*] Improved disconnect reason reporting: HasErrorCode under the NT network async stream object 2023-04-26 20:32:25 +01:00
4b79aa902b [*] i dont think this path should ever be hit, but just to be certain, lets check the networks output channel translation object for an error if the socketbase doesnt know of the last fatal error code 2023-04-26 20:22:11 +01:00
b8540c77a7 [*] improved network error reporting 2023-04-26 20:13:17 +01:00
3f0368b99d [*] cache these adapter allocations away 2023-04-26 07:37:14 +01:00
30b0c2e0ba [*] Preemptive GetOverlappedResult fast-paths under WaitMultiple2 that rely on the alertable yield under next read/write cannot be trusted if the read count is zero.
Direct IO-specific quirk?
Windows 7 specific quirk?
Direct IO under Win7 specific quirk?
idk, but this fixes it
2023-04-26 07:25:45 +01:00
22c4d25759 [*] amend cdf5a499, bKillPipeOnFirstRootLevelFalse not respected 2023-04-25 12:57:15 +01:00
cdf5a499cb [*] Improved pipe work awareness under protocol stack to allow for propagation of error conditions such that the top most interceptor can kill the pipe work 2023-04-25 12:13:16 +01:00
e0d7bbea01 [*] stream regression 2023-04-25 10:09:37 +01:00
664eb270dc [+] IIOPipeWork::GetBytesProcessedInterframe
[*] IOPipeProcessors will now cap reported progression to the requested length if the requested page size would mean we overrun it.
2023-04-25 07:38:36 +01:00
f52175d7ce [*] build error 2023-04-25 02:59:18 +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
5fd655b501 [*] further deprecate 2023-04-22 23:08:49 +01:00
772d08fee6 [*] amend 2a33d61e 2023-04-22 23:04:46 +01:00
2a33d61e63 [*] further deprecate high res clock
[*] further posix resolution reporting
2023-04-22 22:58:20 +01:00
945d54ef78 [*] i did a dumb 2023-04-22 22:38:37 +01:00
6d73dde240 [+] Thread + Process clocks 2023-04-21 22:08:56 +01:00
92af491fe8 [*] if (count == 1) * 2023-04-21 18:52:30 +01:00
36c163d90c [*] 2af2eadf cont 2023-04-19 23:57:56 +01:00
d7d514c6b7 [*] protocol-stack ticks now check against the buffers error flags to ensure Writes/Reads weren't being silently dropped in user code 2023-04-19 23:46:56 +01:00
2af2eadfa8 [*] Resolve: protocol-stack link bug (multiple append failure / missing next link) 2023-04-19 23:35:48 +01:00
00129255f8 [*] changed this to be a soft-failure 2023-04-19 04:03:49 +01:00
11ba608727 [*] bonk 2023-04-19 03:54:55 +01:00
bfd4069994 [*] logger mitigations cont - current thread callback may as well be sanitized as well 2023-04-18 02:30:11 +01:00
b32bf5f1f1 [*] Logger mitigations
Closes #47
2023-04-18 02:09:16 +01:00
b2311a8824 [+] IProcessSectionMapView::LockSwap
[+] IProcessSectionMapView::UnlockSwap
[*] Fix critical tag under ILogger
[*] Added missing includes to experimental APIs
2023-04-17 15:55:51 +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
53a29a6c13 [*] flag consistency 2023-04-16 23:41:06 +01:00
4cac821fbb [+] Added critical log level
[*] Fix win32 DELETE bug
2023-04-16 23:38:31 +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
c6971efab7 [*] fix ns (<1s) padding 2023-04-05 08:30:20 +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
b3ed716e94 [*] fix minidump writing 2023-03-31 04:24:19 +01:00
238874cf8c [*] u wot 2023-03-27 23:52:41 +01:00
168e6e1e39 [*] Cleanup and harden log classes 2023-03-27 06:21:42 +01:00
a60c1e9503 [+] AuLog.LogClassGetNext
[+] AuLog.LogClassRelease
[+] AuLog.LogClassAssociateName
[+] AuLog.LogClassGetNameSafe
[+] AuLog.LogClassGetNameUnsafe
[+] AuLog.LogClassInUse
[+] AuLog.LogClassTotalInUse
[+] AuLog.LogClassTotalAvailable
2023-03-23 00:01:49 +00:00
f1826cc27f [*] wanted to do this for a while 2023-03-22 18:11:32 +00:00
440b5877b2 [*] link errors 2023-03-22 16:59:21 +00:00
184ef34838 [*] This error should be logged under future telementry
(legacy 2020 print)
2023-03-22 15:20:36 +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
82d455c4b1 [+] AuTime::EClock
[+] AuTime::IClock
[+] AuTime::GetWallClock
[+] AuTime::GetProcessClock
[+] AuTime::GetSteadyClock
[+] AuTime::GetClockFromEnum
[*] Rename Timer -> Stopwatch
[*] Refactor a serial AuString to a string view

(*amended year)
2023-03-21 10:26:16 +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
2745ef23a0 [+] Brotli [de]compressor 2023-03-12 21:03:47 +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
64af4d0fa8 [+] AuAsync::IThreadPool::PollAndCount
[+] AuAsync::IThreadPool::RunAllPending
2023-03-05 12:55:07 +00:00
a550a6f58f [*] Harden normalize path 2023-03-05 09:16:09 +00:00
3e7e5e769a [*] Selection key spam crash bugfix 2023-02-17 22:27:24 +00:00
eb13a3c0d1 [*] Added missing signal redraws 2023-02-17 20:44:01 +00:00
fc097de2da [+] Initial unified handling of control, shift, selection, backspace handling under ConsoleTTY 2023-02-17 19:42:30 +00:00
d2ad4cd10d [*] Solve another deadlock race condition under SysShutdown 2023-02-17 04:44:17 +00:00
eb4e40d548 [*] Updated deinit 2023-02-16 18:44:28 +00:00
7223071877 [*] Updated EP 2023-02-16 18:30:56 +00:00
88b0270435 [+] Broke out NT LoadLibrarys to a dedicated root AuProcAddesses.[NT.]hpp 2023-02-16 16:01:21 +00:00
c4fae31057 [*] Another shutdown "fix" 2023-02-16 01:01:21 +00:00
1cd2d82093 [*] Fix shutdown races under V8 + JS + Gtk branch 2023-02-16 00:45:10 +00:00
9d71b5c04f [*] Found another race condition 2023-02-11 19:37:30 +00:00
ba9ddded75 [*] fix crash in an empty unit test on deinit 2023-02-09 19:28:01 +00:00
25ffeec543 [*] Revert last commit. Doing the correct thing just resulted in the console not being flushed 100% of the time.
Oh well, i'll investigate later. This should help.
2023-02-09 13:08:13 +00:00
cb920e1ee1 [*] Win32: Delegate last nights hack before bed to grug
(unix parity)
2023-02-09 12:37:32 +00:00
76069f2b43 [+] Win32: updated exit handler to include the exit button and shutdown 2023-02-09 00:53:12 +00:00
fa9f190635 [+] Missing Win32 exit handler. I was dumb enough to rely on the debug exception
[*] ...no this wont do for now
2023-02-09 00:42:56 +00:00
8293484a86 [*] Reworked AuAsync ThreadPool shutdown (again)
[*] Fixed nested lock under WorkItem
2023-02-08 18:23:37 +00:00
75c37f4e55 [*] Fix consoletty (the console) and the thread racing on exiting causing a deadlock 2023-02-06 05:14:01 +00:00
8b6c93fba9 [*] Fix: ThreadPool::ResolveHandle throws null 2023-02-06 04:07:54 +00:00
013c1a00bd [*] Updated ConsoleFIO for the first time in a very long time 2023-02-05 14:28:03 +00:00
1e4971342d [*] big dumb 2023-02-04 19:46:35 +00:00
f43251c8fc [+] AuNet::ISocketChannelEventListener
[+] AuFS::UpdateTimes
[+] AuFS::UpdateFileTimes
[+] AuFS::CompressEx
[*] AuFS::Compress now rejects files that look to be already compressed
[+] AuFS::DecompressEx
[+] AuFS::Create
[+] AuFS::WriteNewFile
[+] AuFS::WriteNewString
[+] AuFs::FileAttrsList
[+] AuFs::FileAttrsGet
[+] AuFs::FileAttrsSet
[+] DirectoryLogger::uMaxLogsOrZeroBeforeCompress
[+] ISocketChannel.AddEventListener
[+] ISocketChannel.AddEventListener
[+] DirectoryLogger.uMaxLogsOrZeroBeforeCompress
[*] Fix UNIX regression
[*] Fix up stream socket channel realloc IPC
[*] Fix shutdown regression in pretty much everything thanks to 8ff81df1's dumbass fix
    (fixes fence regression on shutdown)
[*] Fix DirDeleterEx formatting of reported failed paths
[*] Fix up file not truncated if already exists bugs. Extended and alternative apis added.
[*] Fix ICompressionStream::ReadEx returning the wrong read value
[+] Legacy compression API can now self-correct once newer stream processor objects are added
2023-02-04 19:43:01 +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
2474566d80 [*] two hotfixes 2023-01-29 23:03:54 +00:00
04aca5fcf2 [+] Aurora::IO::Net::NetSocketConnectByHost
[+] Aurora::IO::FS::DirDeleterEx
[+] Aurora::IO::Compress
[+] Aurora::IO::Decompress
[*] Aurora::Memory::ByteBuffer zero-alloc fixes
[*] Aurora::Memory::ByteBuffer linear read of begin/end should return (`const AuUInt8 *`)'s
[*] Changed NT file CREATE flags
[*] Fix linux regression
[*] Update logger sink DirLogArchive
... [+] DirectoryLogger::uMaxLogsOrZeroBeforeDelete
... [+] DirectoryLogger::uMaxCumulativeFileSizeInMiBOrZeroBeforeDelete
... [+] DirectoryLogger::uMaxCumulativeFileSizeInMiBOrZeroBeforeCompress
... [+] DirectoryLogger::uMaxFileTimeInDeltaMSOrZeroBeforeCompress
... [+] DirectoryLogger::uMaxFileTimeInDeltaMSOrZeroBeforeDelete
[*] FIX: BufferedLineReader was taking the wrong end head
(prep) LZMACompressor
[*] Updated build-script for LZMA (when i can be bothered to impl it)
(prep) FSOverlappedUtilities
(prep) FSDefaultOverlappedWorkerThread | default worker pool / apc dispatcher / auasync dispatcher concept for higher level overlapped ops
(stub) [+] Aurora::IO::FS::OverlappedForceDelegatedIO
(stub) [+] Aurora::IO::FS::OverlappedCompress
(stub) [+] Aurora::IO::FS::OverlappedDecompress
(stub) [+] Aurora::IO::FS::OverlappedWrite
(stub) [+] Aurora::IO::FS::OverlappedRead
(stub) [+] Aurora::IO::FS::OverlappedStat
(stub) [+] Aurora::IO::FS::OverlappedCopy
(stub) [+] Aurora::IO::FS::OverlappedRelink
(stub) [+] Aurora::IO::FS::OverlappedTrustFile
(stub) [+] Aurora::IO::FS::OverlappedBlockFile
(stub) [+] Aurora::IO::FS::OverlappedUnblockFile
(stub) [+] Aurora::IO::FS::OverlappedDelete
2023-01-26 21:43:19 +00:00
bf8c1eb8c7 [+] AuFS::TrustFile
[+] AuFS::UnblockFile
[+] AuFS::TrustFile
[*] Fixup UNIX open logic a bit

(amended. i did not mess up octals >:( )
2023-01-25 16:50:53 +00:00
d4dfe22c6c [+] Always expand directory tree when attempting to copy or move files, just like every other FIO create operation.
[*] ~~Fix improper yield BlockUntilComplete on NewFence~~, kind of, not really. Wasn't really a bug. Might've introduced more overhead. Might revert.
2023-01-23 21:18:58 +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
124038df62 [*] Refactor public headers
[+] AuConsole::Commands::RemoveCommand
[+] EExtendedUsage::eServerAuth
[+] SysPanic2 for SysSafeLine hints (backtrace may contain optimized SysPanics, making tracing the true origin difficult)
[*] Reworked SysAssertions
[*] AuParse::EncodeHex now takes AuMemoryViewRead
[*] AuRng::ReadSecureRNG now takes AuMemoryViewWrite
[*] AuRng::ReadFastRNG now takes AuMemoryViewWrite
2023-01-15 06:05:22 +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
87194ac1ea [+] Linux: add missing parse for uUserlandXXX version numbers for non-rolling distros.
[+] Fallback /usr/lib/os-release file reference
2022-12-28 21:14:52 +00:00
dcc9205ea6 [+] IRandomDevice::ToSeed() 2022-12-28 20:30:15 +00:00
dbbcd14b57 [*] Optimize for Win8.1 scheduler that can bypass SRW CVs
[*] Update readme
2022-12-28 10:50:30 +00:00
6e78ce5e07 [*] UNIX benchmarks: follow CLOCK_PROCESS_CPUTIME_ID time 2022-12-27 19:41:52 +00:00
0be7c13e1b [*] consoletty pos calculation fix 2022-12-27 15:17:34 +00:00
15c7df1480 [*] Disable telemetry reporting after runtime shutdown to prevent null exceptions from being reported under TLS. Fixes deadlock and a crash. 2022-12-21 23:37:41 +00:00
a1e77a471b [*] Dumb path bug 2022-12-21 14:27:26 +00:00
4e6f116925 [*] Refactor
[+] IProcessSectionView::GetStart
[+] IProcessSectionView::GetEnd
2022-12-17 20:14:19 +00:00
9ce314a838 [*] Linux DirMks shall copy the stat of the parent dir before assuming 775.
[*] Added missing null allocation checks under linux net adapter list
2022-12-17 15:37:46 +00:00
6f6be5c545 [+] Linux: missing AuNet adapter API
[*] Update README
2022-12-17 13:57:00 +00:00
1e4082c02f [+] Linux datagrams
[+] NetSocketBind::uDefaultInputStreamSize
[+] NetDatagramBind::uDefaultInputStreamSize
2022-12-16 17:18:12 +00:00
42d02b185c [*] Linux fault: LTC/Clang driver bug? _multi encode variant results in inexplicable given a SEQUENCE after seemingly anything.
Faults on bool deref under encode boolean.
2022-12-16 07:04:11 +00:00
f0fcec0cb7 [+] _CLOEXEC on F-tier operating systems predating SMP and processes 2022-12-16 03:48:04 +00:00
766be57a46 [+] Linux build [again]
[+] ProcessSectionViewReserved.Unix.cpp
[*] Fix missing ::Flush() member on ViewWriter
2022-12-16 00:41:01 +00:00
2b91302128 [*] remove half-removed expression and readd missing cache clear 2022-12-15 01:54:49 +00:00
85a575eb95 [+] Network interfaces API
[+] Logger IFormatter API
[*] Clean up
2022-12-14 20:08:52 +00:00
c79a20c7fe [*] i hate object cache 2022-12-14 07:12:43 +00:00
c42ebc9853 [*] Improved cache reporting under NT under various conditions
new hw: return upper bound of range at level index.
old sw: missing impl.
2022-12-14 05:25:05 +00:00
49287f2a73 [*] Minor cleanup/refactor 2022-12-14 05:03:37 +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
6dfa806e3a [+] (NT only) Missing numpad and math keys input under ConsoleStd noncan APIs
[*] Refactor NoncanonicalInput
[*] Fix various keys resort in NUL getting added to ConsoleTTYs input field
[*] Fix multichar right key input (finish TODO note)

[*] Hex grammar: literals may end with 'h' now that i think about it. also added wiresharks seperator. let's continue to simply make sure we cover all forms of hex in a reasonably liberal fashion to account for user input from various human written and software form.

(Nonuniform style of non-hex illegal chars are fine so long as it looks and reads like a legal array of hex characters. Comas must come directly after literals, possible [0x] prefixes are fine, whitespaces too, copy/pasted '[', ']', '{', '}', 'reasonable' new line rejection, etc)
2022-12-09 22:59:03 +00:00
39ef196c0a [*] Modernize legacy compression API Compress 2022-12-09 01:19:25 +00:00
1ff9feb303 [+] Initial heap stat counter API
[+] Upcoming failure categories
[+] Updated SysPushXXX prototypes
[*] Restore bandwidth OnTick position for extrapolate (using current frame stats, ref to last) fractional lerps into the future with ref to average
[*] Compression.cpp AuList<AuUInt8> upgrade was incomplete & could've been improved with modern apis
2022-12-08 19:34:15 +00:00
1b26faf45a [+] configurable memory allocator padding 2022-12-07 16:20:13 +00:00
73e77d0a97 [*] Fix use after free in termination path of heap. cannot safely use try lock in this one single place. 2022-12-07 11:38:10 +00:00
1f1d1bbc28 [+] Added AuDebug::MemoryCrunch implementation under debug and memory 2022-12-07 01:37:42 +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
fe3db644bd [*] amend label pos
[*] always zero pointer fields in bytebuffer (early reset on uninitialized field -> crash)
[*] solve known deflate quirk
2022-11-30 11:53:43 +00:00
89d341b4fc [+] AuDebug::ErrorStack / AuErrorStack
[+] Begin stubbing out memory crunch apis
[*] Fixed MT consoletty missed flushes
2022-11-30 11:11:18 +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
bb9c383aee [+] ICompressionInterceptor::LimitPassthroughOnOverflow
[+] IOPipeRequest::uMinBytesToRead
[+] (secret api intended for unix users) AuIO::NewLSOSHandleEx
[*] Fix quirks when running Gtk under an io processor
...CtxYield shouldn't spin while work (improper breakout on remote update)
[*] EFileOpenMode::eWrite should assume O_CREAT semantics making eReadWrite somewhat redundant. OpenWrite + eWrite should reasonably work with file-appends. it should not mean force create + cucked GetLength().
2022-11-20 10:31:13 +00:00
033f7e2453 [+] Aurora::Crypto::X509::CertRequest
[+] Aurora::Crypto::X509::GenerateCertificate
[*] Fix lazily copied gen1 RSA code
[+] Aurora::Crypto::ECC::EECCCurve::eCurveSECP256R1
[+] Aurora::Crypto::ECC::EECCCurve::eCurveSECP256K1
[+] Aurora::Crypto::ECC::EECCCurve::eCurveSECP384R1
[+] Aurora::Crypto::ECC::EECCCurve::eCurveSECP521R1
[*] Unfuck ECC interop
[*] Tls pinning: use mbedtls_ssl_conf_verify for tls1.3 (when mbedtls is in a better state)
2022-11-18 21:03:11 +00:00
d9dd1182b9 [+] TLS pinning
[*] ISocket::Shutdown(*bool bNow*), allowing for flush of the send channel when false
[*] Fix StartRead and StartWrite after shutdown (NT)
[*] Amended dead-lock
2022-11-18 04:44:47 +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
e145352920 [+] IProtocolStack::AppendSingleFrameProcessor
[+] IProtocolStack::AppendSingleFrameProcessorEx
[+] ICompressionInterceptor::FlushNextFrame
[+] ICompressionInterceptor::ConfigureAutoFlushPerFrame
2022-11-08 20:04:12 +00:00
745b9f974a [+] ByteBuffer::WriteFromEx
[+] ByteBuffer::WriteFrom
[*] Fix known path resolution quirks and missing compression staged change
[+] ICompressionInterceptor::LimitHasHit
[+] ICompressionInterceptor::LimitReset
[+] ICompressionInterceptor::LimitSet
[+] ICompressionInterceptor::LimitGetIndex
2022-11-07 22:46:35 +00:00
07fd9f19f8 [+] NewProtocolStackFromPipe([...], bool bAutoTick)
[+] IOPipeRequestAIO::uStartOffset
[*] Fix Zstd frames being finicky
[*] Fix compression interceptor invalid weak reference to pipe that
[*] Fix WinFileStream::GetOffset using wrong enumeration
[*] Null ByteBuffer flags on init bc not all operators and constructors account for them
[will prevent bugs in the future]
2022-11-07 13:34:28 +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
278a128834 [*] the s member is a u64[] - dont apply 8x modifier to the read index (doesnt apply to write) 2022-10-04 13:25:56 +01:00
051db40a1c [+] STATUS_ACCESS_DENIED error enum in AuNetError.cpp (required for filtered connects given the overlappeds internal field that uses the nt status codes)
[*] fixed: TLS now properly sends the encrypted frame down to the next piece instead of directly to the drain
2022-10-01 01:07:26 +01:00
4671664396 [+] IProcessSectionView::AllocateEx
[+] IProcessSectionView::AllocateEx2
[+] IProcessSectionView::MapFileByPathEx
[+] IProcessSectionView::MapFileByObjectEx
[+] IProcessSectionView::MapIPCMemoryEx
[+] IProcessSectionView::GetAllocations
[+] ReserveAddressSpace(AuUInt uLength)
[*] Modified default value of: PageTable::NX
2022-09-30 23:47:18 +01:00
83ee24014f [+] IProtocolPiece (public interface)
[+] IProtocolPiece::Remove
[+] IProtocolPiece::ToNextWriter
[+] IProtocolPiece::GetNextPieceBuffer
2022-09-29 11:45:08 +01:00
990d0b7b9c [*] Update hex decode to use stream apis. massive optimization over using .write for each byte. 2022-09-29 10:48:02 +01:00
85c29bb203 [*] base32 encode should take a view over pointer
[*] base64->16 typo
[-] redundant explicit static parsers
2022-09-29 08:58:20 +01:00
efc02d24f7 [*] Refactor RandomDef: bSecure, ::SetQuickRng()
[*] Default initialize net protocols to zero (tcp)
[*] Warning under AuUInt8 &ByteBuffer::operator[](AuUInt idx)
2022-09-27 17:30:26 +01:00
8ec993f4c0 [*] oopsie of a regression. compression bytebuffers became linear after the hack for protocolstack interop 2022-09-25 18:04:41 +01:00
f61d5c3b7a [*] i don't believe yarrow_start is necessary, but just in case, register the yarrows cipher state ahead of rsa/ecc calls 2022-09-25 11:19:43 +01:00
cae8788bb6 [-] Redundant AuCrypto::EHashType (replaced with the complete AuHashing::EHashType)
[*] Minor RSA refactor
2022-09-25 10:56:03 +01:00
0ded2ec77c [*] potential bug in x25519 sign: was using the linear base ptr instead of write after alloc or validate
[*] old copy/pasted ecdh function clearly wasnt tested in its now form :(
[*] clean up
2022-09-25 09:28:48 +01:00
184fecb8ab [*] ByteBuffer::begin() and ::end() now guarantee a linear view of available bytes in either ring or linear bytebuffers. This means ::begin() is no longer guranteed to return the base. In almost all real world use cases, this does not matter. In fact, this is what we want to preserve legacy code with streamable buffers.
[*] Update KCryptoAES: use streamable buffers. deprecate legacy vec<8>::size() based logic - AuByteBuffer (replacing vec8)::begin, ::end still works.
[*] IO pipe buffers should no longer be marked as circular
2022-09-25 09:10:26 +01:00
1de0bdb4e7 [*] NT ReadFile: replace GENERIC_READ, FILE_SHARE_READ with GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE
[*] ByteBuffer::IsValid() will now return true if there is no underlying buffer so long as the object is marked with the dynamic scaling flag (no contents isnt an invalid state; alloc failure on construct and ad-hoc failure is. latterly, specify the write flag on failure in the ByteBuffer::Write method.) the alloc error can be safely unwound by state raii helpers bc realloc and frens will not free or dirty the state. write-fail-aware may roll back the write head, like how readers can roll back the read head if the stream is incomplete.
2022-09-23 00:59:08 +01:00
6ac4fd61ab [*] Went over baseN and RSA again 2022-09-19 21:34:54 +01:00
c36f159f95 [+] Added asserts in Digests.cpp and HashStream.cpp for good measure
[*] Fix: eRMD320 was crossed with some other done function
2022-09-19 07:18:44 +01:00
50a3ee76f6 [*] transition parse apis that use the old bytebuffer write-into semantics 2022-09-19 07:08:32 +01:00
a7bb5507bb [*] remove dumb key sharing between private and public rsa keys 2022-09-19 07:01:30 +01:00
050e938f0c [*] transition some of the old vector based AuByteBuffer APIs to be stream aware
[*] fix: runnersRunning was uninitialized
[*] fix: unimplemented path in GetOrAllocateLinearWriteable
2022-09-19 06:42:39 +01: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
8844e8fe64 [+] AuCrypto::BCrypt
> GetForcedMinRounds
> GenSalt
> HashPW
> HashPWEx
> CheckPassword
> CheckPasswordEx
[*] Refactor AuCompression APIs
[*] Clean up AuTryConstructs
[+] Internal compression API for compression based interceptors
[+] Root-level input stream arg check for all compression apis (harden)
[*] Clean up AuCompression code
[+] Solar Designer / OpenWall blowfish crypt
[*] BlowCrypt: accept length input parameter
[*] Split locale into 2 source files
[-] Ugly comment from Open.Win32.cpp. TODO: Readd later. Might warn on empty string bc it makes sense given, "." and "/" normalizes to nothing, and memory pre-idc-if-drops are dropped siliently.
2022-09-15 20:48:50 +01:00
9c25b112a3 [+] Config: DebugConfig::bIsMemoryErrorFatal
[*] Refactor Aurora::DebugConfig
2022-09-12 23:38:44 +01:00
7c167c90f0 [*] Harden IOPipeProcessor for expansion 2022-09-09 22:54:24 +01:00
01871aee61 [*] Fix clipboard method to work with older noncan apps. still doesnt work under windows terminal 2022-09-09 21:47:53 +01:00