Commit Graph

983 Commits

Author SHA1 Message Date
89686eb022 [*] Use PMR allocators instead 2024-09-09 06:52:38 +01:00
0571aa8dd4 [+] AU_LOCK_GLOBAL_GUARD
[+] AuThreading::GetShutdownReadLock()
2024-09-09 03:46:38 +01:00
35761edaec [+] AuIO::Loop::NewLSTimerHighResolution
[*] ILSTimer::UpdateTime -> ILSTimer::UpdateTimeWall
[*] ILSTimer::UpdateTimeNs -> ILSTimer::UpdateTimeWallNs
[+] ILSTimer::UpdateTimeSteady
[+] ILSTimer::UpdateTimeSteadyNs
2024-09-08 07:26:23 +01:00
4d4f5e2501 [+] ILoopSource::IsSignaledExt(...)
[+] ILoopSource::WaitOnExt(...)
[+] ILoopSource::WaitOnAbsExt(...)
2024-09-07 22:45:34 +01:00
77546b5098 [+] IRandomDevice::XXX has VecD variants
[*] Improve: IRandomDevice internal allocations when handling vector arrays
[*] Fix: NextArrayI64RangeInView
2024-09-05 22:50:02 +01:00
3472665c9f [+] AuOutputOfs OutputOfResult should have a lock for multithread consumption 2024-09-05 18:20:12 +01:00
aafb64e740 [+] AuMemoryView::CopyInto
[+] AuMemoryView::CopyFrom
[+] AuMemoryViewStream::CopyStreamInto
[+] AuMemoryViewStream::CopyStreamFrom
2024-08-27 20:33:00 +01:00
d99c1032da [*] Regression: AuROXTL string view has a different interpretation of what remove prefix/suffix should be. Fix SplitNewlines
[*] Harden SplitString & SplitStringDelm, do not splice UTF8 sequences
2024-08-22 19:15:51 +01:00
2c3c7b04e5 [*] Amend Loop.hpp comments 2024-08-11 22:22:43 +01:00
23a80b8039 [*] Refactor ConditionEx -> IFlexibleConditionVariable 2024-08-08 20:21:03 +01:00
adfca81335 [*] Fuck you 2024-08-08 20:17:52 +01:00
da7fd881a6 [*] Update behaviour of CppHeapWrapper to make it moron proof 2024-08-07 21:39:42 +01:00
9a855f36d0 [*] You fucking donut 2024-08-07 01:42:42 +01:00
57c5515173 [*] Linux: Harden recursive IO scheduling 2024-08-05 19:44:54 +01:00
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
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
ecf8dc6f0b [+] AuRNG::IRandomDevice::...InView
[+] AuRNG::...InView

(amended mixed tabs)
2024-07-21 06:15:02 +01:00
8be1afe570 [+] AuMemory::Heap adapters for third party heap allocators
[+] AuMemory::HeapAdapterInterface to describe aforementioned heap allocators of a very limited API
[+] AuMemory::HeapAdapter[Unique,Shared,]
[+] HeapWin32Adapter to convert HANDLE hHeaps of win32s CreateHeap (RtlCreateHeap?) into AuMemory::Heaps
2024-07-19 09:06:56 +01:00
a995c37e81 [*] Fixup half-assed/rushed alloc class with alignment in the .hpp to .inl breakout commit (ced9e0be)
(sure, it cannot work to realign structs with c++ operator[] overloading; however, we need this to prevent excessive allocations when cloning a U8 memory view of alignment)
2024-07-19 09:01:20 +01:00
2628784ff6 [*] Refactor heap stats 2024-07-19 08:25:30 +01:00
1fb355520e [*] Made AuMemoryViewRead/Writes to bytebuffer less ambiguous 2024-07-19 08:24:51 +01:00
2d2523e679 [*] Another build regression 2024-07-16 23:58:44 +01:00
8df3f6970b [+] Heap::Clone(Heap *[, ...]) 2024-07-15 00:16:13 +01:00
ced9e0be17 [*] Optimize global process heap aliases
[*] Split AuMemory::Heap impl into .inl file
2024-07-15 00:15:35 +01:00
3749702e34 [*] SharableByteBuffer constructors must be inline 2024-07-13 18:51:07 +01:00
e665720f24 [*] Update AuMemory::SharableByteBuffer to be useful with the transition to AuSPtr<AuMemoryViewXXX>'less APIs 2024-07-13 17:08:45 +01:00
3d652ed605 [*] af5c8e86c0 20hrs ago: AuSPtr<AuMemoryViewXXX>s werent fully eliminated 2024-07-13 16:34:44 +01:00
124e9d1d0a [*] Fix main process heap fragmentation caused by shared pointer blocks, always allocate from within the heap object 2024-07-13 03:07:02 +01:00
af5c8e86c0 [*] AuSPtr<AuMemoryViewXXXX> is now an anti-pattern. After 3 fucking years, memory views of shared control blocks and atomic in use counters are properly utilized everywhere. We do not need generic superclasses to be safe anymore 2024-07-12 20:22:48 +01:00
d803f1547c [+] Added AuAsync per thread io group singleton
[*] Move static functions out of the thread pool interface. no idea how i had successful builds before
2024-07-12 17:22:07 +01:00
daf4552eb2 [*] Update AuByteBuffer::Pad to include bUpdateWriteHead argument. broke previous behavior bc this is more convenient and old users were already doing this after the fact 2024-07-09 03:11:10 +01:00
4ab5b4cba7 [*] After just shy of 1y, introduce FS devices into the default include tree. Linux will be brought up soon enough 2024-07-04 23:27:04 +01:00
f2e3ceef99 [+] Au[Futex]Countdown 2024-06-30 05:40:13 +01:00
0555e8cc32 [*] Update: WakeOnAddress.hpp comments 2024-06-30 05:13:55 +01:00
27b18c0a37 [+] MemoryView::ToSharedControlBlock
[+] et al
2024-06-29 01:12:07 +01:00
114976a71d [*] im a smort boi 2024-06-19 22:17:55 +01:00
5b19341186 [*] Improve regressed AuWoA time to wake 2024-06-19 22:05:17 +01:00
9805a57647 [+] MemoryView::Clone()
[+] MemoryView::CloneSelf()
2024-06-11 07:25:48 +01:00
7fdcdb7568 [*] Fuck you 2024-06-10 14:08:58 +01:00
ee9e318511 [*] Fix: AuByteBuffer::Resize could resize with wrong ringbuffer alignmnet or linear if a fast path fails
[+] ByteBuffer::ByteBuffer(const MemoryViewRead &readView, AuUInt uAlignment, bool circular, bool expandable
2024-06-03 04:26:18 +01:00
3241ebb349 [+] The missing AuByteBuffer::ByteBuffer(const MemoryViewRead &readView, ...) constructor 2024-06-02 00:13:56 +01:00
4e7f3ed3dd [*] Sometimes let ByteBuffer::Resize pass when it shouldn't be allowed to 2024-06-02 00:05:19 +01:00
588322252f [*] Redo ByteBuffer::Pad for write streams 2024-06-01 23:57:50 +01:00
c3e898d53d [*] Redo d520b0ce with the lost semaphore copy described in the commit comment
(wtf? did i stash something at the wrong time?)
2024-05-28 19:28:08 +01:00
d520b0ce42 [*] I'm going to let the reference waitaible/woa/futex primitives be copy and movable now.
condvars -> cannot matter, you're creating a new object
mutex -> cannot mater, you're creating a new object, perhaps copy assignment under lock might be required depending on the parent. either way, a copy ctor is not required
semaphore -> copy state in case of the timelime barrier use case. semaphores emulating condvars and similar logic wont mind the overshoot. best case, we do want to copy the previous state as the initial count. worst case, your code is fundamentally broken.
2024-05-28 00:42:24 +01:00
a5a9fa3887 [*] Updated AuTheading::WaitFor prototype
[+/*] Missing YieldPoll MS prototype in public header
2024-05-27 15:04:21 +01:00
30b0fce882 [*] Updated/added FutexBarrier comments and updated AuThreadings README 2024-05-27 14:35:10 +01:00
e4fa5d549e [*] Refactor IAuroraThread 2024-05-27 13:28:57 +01:00
9b3aa12db6 [*] Fix bytebuffer crash on copy assignment when empty (also move the constructors implementation to a inl file) 2024-05-22 11:43:46 +01:00
60771f6e6b [+] MemoryView::DemoteFromSharedView 2024-05-21 11:30:15 +01:00
ba36ea4ef1 [+] Added AuOptional<AuUInt> optMaxRecursion to AuFS::ReadDirRecursive 2024-05-19 17:12:14 +01:00
9b26eea886 [+] IAsyncTimer::SetCatchUp(bool bCatchUp) 2024-05-19 17:01:51 +01:00
e86a414837 [*] d589ce3549 missed header update 2024-05-11 18:51:16 +01:00
631624dc55 [*] Linux build regressions, and shrink the size of Linux RWLocks to 48 bytes from 64 2024-05-07 14:57:19 +01:00
f948c3423c [*] Fix dodgy mostly unused error-less T ByteBuffer::ReadTagged() 2024-05-03 14:23:21 +01:00
a35c1f165a [+] AuAsync::ThreadPool::Wakeup(WorkerId_t) 2024-05-03 11:32:31 +01:00
373ccc3660 [+] C++20 QOL changes to AuFutures including AuFuture<X, Y>::BlockUntilComplete()
[*] Added additional check for failing dependencies of IWorkItems. Not required for fails to cascade, but this is nice to have here.
2024-05-03 09:28:14 +01:00
195af26aa4 [*] C++20 coroutine support: recursive callstack 2024-05-01 20:09:35 +01:00
f13c344249 [*] DemangleName should use a RONString 2024-04-28 16:44:16 +01:00
7e9a9417db [*] ROXTL now has AuRONString
[*] Envvars: empty value is now valid
2024-04-28 13:22:47 +01:00
54904957f2 [+] IRandomDevice.NextArrayVec2Fast
[+] IRandomDevice.NextArrayVec3Fast
[+] IRandomDevice.NextArrayVec4Fast
[+] AuRNG.RngArrayVec2Fast
[+] AuRNG.RngArrayVec3Fast
[+] AuRNG.RngArrayVec4Fast
2024-04-24 15:27:19 +01:00
a526d67bc3 [*] Change/Fixup the object ids of ByteBufs typedreadwrite 2024-04-24 14:25:49 +01:00
298ab88648 [+] AuMemoryView::TryPromoteToSharedView
[+] AuMemoryView::TryDemoteFromSharedView
[+] AuMemory::RequestHeapOfSharedRegion
2024-04-24 00:52:58 +01:00
36f0be801c [*] ShuffleIterators should use the fast impl of RngArrayU32Range 2024-04-22 23:33:06 +01:00
442a5f31eb [+] AuRNG::RngArrayI32RangeFast
[+] AuRNG::RngArrayU32RangeFast
[+] AuRNG::RngArrayI64RangeFast
[+] AuRNG::RngArrayU64RangeFast
[+] IRandomDevice::NextArrayI32RangeFast
[+] IRandomDevice::NextArrayU32RangeFast
[+] IRandomDevice::NextArrayI64RangeFast
[+] IRandomDevice::NextArrayU64RangeFast
2024-04-22 22:05:01 +01:00
5f9681c9e3 [+] AuRNG::IRandomDevice::NextU64Range
[+] AuRNG::IRandomDevice::NextI64Range
[+] AuRNG::IRandomDevice::NextVec2
[+] AuRNG::IRandomDevice::NextVec2Sorted
[+] AuRNG::IRandomDevice::NextVec3
[+] AuRNG::IRandomDevice::NextVec3Sorted
[+] AuRNG::IRandomDevice::NextVec4
[+] AuRNG::IRandomDevice::NextVec4Sorted
[+] AuRNG::IRandomDevice::NextArrayI64Range
[+] AuRNG::IRandomDevice::NextArrayU64Range
[+] AuRNG::IRandomDevice::NextArrayU32Mask
[+] AuRNG::IRandomDevice::NextArrayU64Mask
[+] AuRNG::IRandomDevice::NextArrayI64
[+] AuRNG::IRandomDevice::NextArrayU64
[+] AuRNG::IRandomDevice::NextArrayVec2
[+] AuRNG::IRandomDevice::NextArrayVec2Sorted
[+] AuRNG::IRandomDevice::NextArrayVec3
[+] AuRNG::IRandomDevice::NextArrayVec3Sorted
[+] AuRNG::IRandomDevice::NextArrayVec4
[+] AuRNG::IRandomDevice::NextArrayVec4Sorted
[+] AuRNG::IRandomDevice::NextArrayVec4SortedFast
[+] AuRNG::IRandomDevice::NextArrayVec3SortedFast
[+] AuRNG::IRandomDevice::NextArrayVec2SortedFast
[+] AuRNG::IRandomDevice::NextArrayDoubleRangeFast
[+] AuRNG::IRandomDevice::NextArrayDecimalsFast
[+] AuRNG::RngU64Range
[+] AuRNG::RngI64Range
[+] AuRNG::RngVec2
[+] AuRNG::RngVec2Sorted
[+] AuRNG::RngVec3
[+] AuRNG::RngVec3Sorted
[+] AuRNG::RngVec4
[+] AuRNG::RngVec4Sorted
[+] AuRNG::RngArrayI64Range
[+] AuRNG::RngArrayU64Range
[+] AuRNG::RngArrayU32Mask
[+] AuRNG::RngArrayU64Mask
[+] AuRNG::RngArrayI64
[+] AuRNG::RngArrayU64
[+] AuRNG::RngArrayVec2
[+] AuRNG::RngArrayVec2Sorted
[+] AuRNG::RngArrayVec3
[+] AuRNG::RngArrayVec3Sorted
[+] AuRNG::RngArrayVec4
[+] AuRNG::RngArrayVec4Sorted
[+] AuRNG::RngArrayVec4SortedFast
[+] AuRNG::RngArrayVec3SortedFast
[+] AuRNG::RngArrayVec2SortedFast
[+] AuRNG::RngArrayDoubleRangeFast
[+] AuRNG::RngArrayDecimalsFast
2024-04-22 06:02:56 +01:00
76b5466e87 [*] fix 2024-04-21 06:53:34 +01:00
b47cf9f181 [*] DebugBenchmark and ITTYConsole now uses ROStrings 2024-04-21 06:02:47 +01:00
7935159290 [+] std::pmr requirements 2024-04-21 02:49:57 +01:00
e7d9df3cab [*] Improve alt-AuString allocator awareness 2024-04-20 02:29:49 +01:00
83f34b0c47 [*] I was right. String views are [mostly] pointless (*)
03:28:55:638  17>2 of 53388 functions (<0.1%) were compiled, the rest were copied from previous compilation.
03:28:55:638  17>  0 functions were new in current compilation
03:28:55:638  17>  65 functions had inline decision re-evaluated but remain unchanged
03:28:56:749  17>Finished generating code

the header of const AuString & is the same as std::string_view therefore nothing changes. in fact, we still need to alloc strings a bunch of times for a zero terminated string. worse, <c++20 always allocs each time we want to access a hashmap with o(1) lookup, making small hashmaps kinda pointless when we always have to alloc+copy (thx std)

perhaps this will help some language binders
2024-04-19 05:58:08 +01:00
62917318af [+] (reference futex primitive) AuFutexMutexSpecial = AuThreading::Waitables::FutexWaitableNoVTblMovable
[+] (reference futex primitive) AuFutexMutexSmallest = AuThreading::Waitables::FutexWaitableNoVTblMovableSmallest

...because i cant be arsed
2024-04-16 04:30:31 +01:00
7cb9355805 [*] Harden RequestHeapOfRegion 2024-04-15 18:04:44 +01:00
528cb01679 [*] INetAdapter refactor: lets not assume all adapters have IP addresses 2024-04-14 22:02:38 +01:00
0164919cd9 [+] while_bc 2024-04-13 22:49:05 +01:00
3115627424 [*] Introduce APIs to access IProcessSectionMapView safely when malicious calls to Unmap could be made 2024-04-12 13:42:30 +01:00
f2eadb4653 [*] Destink Stinks.hpp 2024-04-11 14:53:02 +01:00
9742db62d3 [+] AuLogging::NewStreamSink
[*] Logging QOL fixes
2024-04-10 11:05:00 +01:00
a300076c6d [*] Refactor: INetAdapter::GetDNS() now returns a const reference 2024-04-01 06:44:20 +01:00
2a2e40fc8c [*] Refactor ENetworkAdapterType->EAdapterType
[*] Refactor ENetworkAdapterStatus->EAdapterStatus
2024-04-01 06:41:51 +01:00
2717178681 [+] Added INetworkInterface overloads
[+] INetInterface::SetWorkersService
[+] INetInterface::SetResolveService
[+] INetInterface::SetDatagramService
[+] INetInterface::SetInterfacesService
[*] Refactor: INetAdapter::GetStatus -> INetAdapter::GetAdapterStatus
[*] Refactor: const NetError &ISocketBase::GetError() -> AuOptional<const NetError &> ISocketBase::GetError()
[*] Refactor: INetAdapter to return const references of IPAddresses
2024-04-01 06:28:35 +01:00
232a136bfe [+] IOHandle::IsWriteEoSOnClose
[+] IOHandle::SetWriteEoSOnClose
[+] IOHandle::HandleCreate::bFlushOnClose
[+] IOHandle::HandleCreate::bWriteEoSOnClose
[*] Unified grug based auto-truncating. Previously we were truncating on the final derefing thread; now, we truncate on the grug thread.
[*] Refactor/Cleanup IOHandle
2024-03-27 03:15:01 +00:00
30fa15b726 [*] Clean up grug and auasync scheduler / improved idle cpu usage 2024-03-26 18:38:52 +00:00
8a9c45c213 [*] shit spec by shit for brains phd boomers 2024-03-25 13:37:18 +00:00
683e383095 [*] MSVC build regression 2024-03-24 15:30:00 +00:00
c87ec4e4b6 [*] Linux build regressions 2024-03-21 00:32:13 +00:00
d6ac05054e [*] Update prototype: AuFS::ReadDirRecursive(const AuString &string, AuOptional<bool> bTraverseSymlinks)
[+] AuUInt32 AuFS::IReadDir::GetErrorCount()
[+] AuList<AuString> AuFS::IReadDir::GetErrorPaths()
2024-03-19 18:08:54 +00:00
bd1283e146 [*] Polish AuMemory 2024-03-19 16:10:32 +00:00
0b60cb8099 [*] Fix major heap regression 2024-03-19 11:56:15 +00:00
b65f27fa8f [*] Harden AuByteBuffer against use after free 2024-03-18 08:47:37 +00:00
c54ac9d6a3 [+] AuFS::ReadFileHeader 2024-03-18 05:58:20 +00:00
f0248ed658 [*] Fix AuByteBuffer writes of AuOptionals 2024-03-17 20:42:24 +00:00
c3cb380eca [+] ADestructionWatcher::ADestructionWatcher(ADestructionWatcher &&move);
[+] ADestructionWatcher::ADestructionWatcher(const ADestructionWatcher &copy);
[+] ADestructionWatcher::ADestructionWatcher &operator =(ADestructionWatcher &&move);
[+] ADestructionWatcher::ADestructionWatcher &operator =(const ADestructionWatcher &copy);
2024-03-17 19:00:05 +00:00
1e53972a2a [*] Harden AuFutures against OOM 2024-03-17 16:09:24 +00:00
41a7ddf51c [*] Update AuNewClassUnique for a7033c40 2024-03-17 15:29:14 +00:00
bcb007ebe8 [*] Improved AuByteBuffer structure 2024-03-17 13:57:28 +00:00
a7033c40e2 [*] Nuke some std:: usage under AuMemory::Heap 2024-03-17 13:16:43 +00:00
1fc131e10a [*] Move #if defined(_AUHAS_FMT) around 2024-03-17 06:19:22 +00:00
1263434bb7 [+] bool IIOHandle::InitFromHandleCopy(const IIOHandle *pHandle) 2024-03-15 13:34:01 +00:00
25b1a9cad6 [*] Thread-safety: harden io file streams and improve construction api of OpenBlockingFileStreamFromHandle 2024-03-15 08:50:52 +00:00