Commit Graph

1933 Commits (master)

Author SHA1 Message Date
Reece Wilson 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
Reece Wilson 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
Reece Wilson 2628784ff6 [*] Refactor heap stats 2024-07-19 08:25:30 +01:00
Reece Wilson 1fb355520e [*] Made AuMemoryViewRead/Writes to bytebuffer less ambiguous 2024-07-19 08:24:51 +01:00
Reece Wilson 2d2523e679 [*] Another build regression 2024-07-16 23:58:44 +01:00
Reece Wilson c57a90929a [*] Build regression 2024-07-16 00:54:07 +01:00
Reece Wilson 8df3f6970b [+] Heap::Clone(Heap *[, ...]) 2024-07-15 00:16:13 +01:00
Reece Wilson ced9e0be17 [*] Optimize global process heap aliases
[*] Split AuMemory::Heap impl into .inl file
2024-07-15 00:15:35 +01:00
Reece Wilson f2acc253b7 [*] Amend `[*] Linux: Update antidbus message for clarity` 2024-07-15 00:12:53 +01:00
Reece Wilson 3749702e34 [*] SharableByteBuffer constructors must be inline 2024-07-13 18:51:07 +01:00
Reece Wilson e665720f24 [*] Update AuMemory::SharableByteBuffer to be useful with the transition to AuSPtr<AuMemoryViewXXX>'less APIs 2024-07-13 17:08:45 +01:00
Reece Wilson 3d652ed605 [*] af5c8e86c0 20hrs ago: AuSPtr<AuMemoryViewXXX>s werent fully eliminated 2024-07-13 16:34:44 +01:00
Reece Wilson 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
Reece Wilson 46ef3231a2 [*] Change how the default work completion group for an AuAsync threads is created and kept alive 2024-07-12 20:40:05 +01:00
Reece Wilson 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
Reece Wilson 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
Reece Wilson 2b2f5c3d23 [*] Win32: added nvme pcie check under fs devices 2024-07-12 16:22:26 +01:00
Reece Wilson d9230ec9c3 [*] Fix NT regression whilst working on a POSIX path bug (3143f3d2) 2024-07-12 16:16:12 +01:00
Reece Wilson 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
Reece Wilson ac69c4c2ff [*] Update path notes in readme 2024-07-06 15:13:15 +01:00
Reece Wilson c6e6c1c433 [+] Added Linux FSPlatformDevices implementation 2024-07-05 10:39:24 +01:00
Reece Wilson 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
Reece Wilson 3143f3d2eb [*] Handling of edge case special dirs under Torbalds OS 2024-07-04 18:54:55 +01:00
Reece Wilson 937016e9f3 [*] Harden awaiting unlock via RuntimeWaitForSecondaryTick() usage under linux 2024-07-03 20:07:59 +01:00
Reece Wilson cb69a7e737 [*] Solve two Linux regressions introduced/poorly worked around in: e7597b8463, 592afe00a7 2024-07-02 05:16:49 +01:00
Reece Wilson e7597b8463 [+] Added basic posix name resolution for when glibc isnt present or when being built on non-glibc toolchains 2024-07-01 12:37:38 +01:00
Reece Wilson 592afe00a7 [*] AuNet: Missing Linux TODO block; harden two callbacks missing a try/catch 2024-07-01 11:54:18 +01:00
Reece Wilson 3bae761e50 [*] AuIO harden 2024-07-01 11:52:12 +01:00
Reece Wilson 8fc20bcc11 [*] Updated XP note 2024-06-30 09:45:07 +01:00
Reece Wilson f2e3ceef99 [+] Au[Futex]Countdown 2024-06-30 05:40:13 +01:00
Reece Wilson 0555e8cc32 [*] Update: WakeOnAddress.hpp comments 2024-06-30 05:13:55 +01:00
Reece Wilson fa900d0f78 [*] Linux: Update antidbus message for clarity 2024-06-30 04:40:37 +01:00
Reece Wilson a1672a33d7 [*] Linux alternative dynamic loader: AuProcess main process path has to be pulled from the procmap instead of arg[0] 2024-06-29 16:06:42 +01:00
Reece Wilson 05737d61fe [*] Linux hack: drop arg[0] when the string contains ld-Aurora 2024-06-29 14:32:20 +01:00
Reece Wilson bd034aec31 [*] AuOSThread harden set piro and name against race conditions
amend: i didnt want to lock so deep of a callstack, but oh well.
amend: win32 regression
2024-06-29 07:33:30 +01:00
Reece Wilson 27b18c0a37 [+] MemoryView::ToSharedControlBlock
[+] et al
2024-06-29 01:12:07 +01:00
Reece Wilson 035d822ec1 [*] Explicit memory order access barrier when reading WOA_SEMAPHORE_MODE-less bAlive under weakly ordered systems. (5b193411 cont: "[*] Improve regressed AuWoA time to wake"
In all other cases, the memory is either thread-local write-local or followed up by an indirect aquire/release of the processors pipeline and L1 cache by virtue of the containers dumb spinlock ::Lock, ::Unlock (...release, ...barrier)
Clang doesn't have /volatile:ms anymore so we cant rely on that
Assuming MSVC-like or x86 isnt good enough

(and, no retard midwits, volatile is a fine keyword. take ur spec sperging and shove it. i just need to control over-optimization of defacto-weakly ordered access between explicit lockless semaphore yields)
2024-06-23 04:29:21 +01:00
Reece Wilson 114976a71d [*] im a smort boi 2024-06-19 22:17:55 +01:00
Reece Wilson 5b19341186 [*] Improve regressed AuWoA time to wake 2024-06-19 22:05:17 +01:00
Reece Wilson 9805a57647 [+] MemoryView::Clone()
[+] MemoryView::CloneSelf()
2024-06-11 07:25:48 +01:00
Reece Wilson 7fdcdb7568 [*] Fuck you 2024-06-10 14:08:58 +01:00
Reece Wilson 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
Reece Wilson 3241ebb349 [+] The missing AuByteBuffer::ByteBuffer(const MemoryViewRead &readView, ...) constructor 2024-06-02 00:13:56 +01:00
Reece Wilson 4e7f3ed3dd [*] Sometimes let ByteBuffer::Resize pass when it shouldn't be allowed to 2024-06-02 00:05:19 +01:00
Reece Wilson 588322252f [*] Redo ByteBuffer::Pad for write streams 2024-06-01 23:57:50 +01:00
Reece Wilson a1c1e88f51 [*] Unify/make consistent one compression out of memory space to write into error as code 0x69, string="OOM" 2024-05-30 01:15:37 +01:00
Reece Wilson 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
Reece Wilson 22136a8ae2 [*] Update media txt files 2024-05-28 18:56:20 +01:00
Reece Wilson 85cf0a793a [*] Release AuAsyncTimer callback references as soon as the object is canceled 2024-05-28 18:18:54 +01:00
Reece Wilson 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