Commit Graph

536 Commits

Author SHA1 Message Date
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
75f6325ee2 [*] Linux: fix spinning in an io_submit=EAGAIN loop 2024-08-05 04:32:52 +01:00
5947e6a2c3 [*/+] Added internal AuLoop::WaitMultipleOrObjects function for POSIX Issue4+ users, excluding the BSDs, to optimize AuLoop::WaitForMultipleObject users. (Win32 and Xbox emulators).
This mitigates the epoll allocation / release under Linux.
2024-08-02 02:23:19 +01:00
67c4cdbee0 [*] TODO: fix int on both platforms 2024-08-01 13:33:36 +01:00
cc01b0557a [*] Improve ILoopQueue::WaitAll parity (been on the todo list for, idk, 3 years) 2024-08-01 12:55:08 +01:00
8545c59cba [*] Amend: 5cafefae bad linux optimization (?) 2024-07-31 12:02:31 +01:00
5cafefae5d [*] LSLocalSemaphore bug fix for scriptability. (TODO: reimpl like the event?)
[*] Fix: IO objects not using the explicit slow sync primitives.
Dunno how these werent refactored; then again, i never properly got around to finishing the factories for fast/slow io objects. In addition, some of these arent even accessed by the ILoopSource interface, so it's not as critical of a failure.
2024-07-30 17:53:58 +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
3d652ed605 [*] af5c8e86c0 20hrs ago: AuSPtr<AuMemoryViewXXX>s werent fully eliminated 2024-07-13 16:34:44 +01:00
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
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
2b2f5c3d23 [*] Win32: added nvme pcie check under fs devices 2024-07-12 16:22:26 +01:00
d9230ec9c3 [*] Fix NT regression whilst working on a POSIX path bug (3143f3d2) 2024-07-12 16:16:12 +01:00
c6e6c1c433 [+] Added Linux FSPlatformDevices implementation 2024-07-05 10:39:24 +01:00
3143f3d2eb [*] Handling of edge case special dirs under Torbalds OS 2024-07-04 18:54:55 +01:00
937016e9f3 [*] Harden awaiting unlock via RuntimeWaitForSecondaryTick() usage under linux 2024-07-03 20:07:59 +01:00
cb69a7e737 [*] Solve two Linux regressions introduced/poorly worked around in: e7597b8463, 592afe00a7 2024-07-02 05:16:49 +01:00
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
592afe00a7 [*] AuNet: Missing Linux TODO block; harden two callbacks missing a try/catch 2024-07-01 11:54:18 +01:00
3bae761e50 [*] AuIO harden 2024-07-01 11:52:12 +01:00
ba36ea4ef1 [+] Added AuOptional<AuUInt> optMaxRecursion to AuFS::ReadDirRecursive 2024-05-19 17:12:14 +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
134816e128 [*] Optimize primitives SMTYield for Alderlake+ user-space, BIOS-ring mwait, and AARCH 2024-05-03 12:22:38 +01:00
b88e28aea0 [*] IOPipeWork completion group problem 2024-04-22 02:51:17 +01:00
579185ec10 [*] Harden AuIOAdapterAsyncStream 2024-04-21 13:23:58 +01:00
c26eaf86a7 [*] Minor UWP progress 2024-04-21 11:52:24 +01:00
85cf7d7a4c [*] Missed u 2024-04-20 02:54:31 +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
528cb01679 [*] INetAdapter refactor: lets not assume all adapters have IP addresses 2024-04-14 22:02:38 +01:00
1bb3197941 [*] Amend a0875950 2024-04-10 08:20:47 +01:00
a087595009 [*] Minor tweaks + more not-so-lazy loads in case of uwp 2024-04-10 00:09:21 +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
5668188945 [*] Harden IO handle interface 2024-03-31 09:26:56 +01:00
263ca6e646 [*] Amend FileStream::Close (232a136b) 2024-03-27 15:40:13 +00: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
782d788531 [*] Drop stupid write stream semantics 2024-03-22 13:57:39 +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
c54ac9d6a3 [+] AuFS::ReadFileHeader 2024-03-18 05:58:20 +00:00
81d7c7027c [*] Cont work on AuIOHandle cleanup 2024-03-16 09:51:41 +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
ccc4116394 [*] PosixShutup for AuProcesses::OpenXXXX and two minor bug fixes 2024-03-15 06:19:30 +00:00
b3f1ef8bc2 [*] Fix recent regression in f401c6f750 and fix two ignored return values 2024-03-14 01:22:20 +00:00
dbd2ec78b3 [*] harden dir traversal for removal 2024-03-13 10:08:38 +00:00
3f265cf19b [*] IOHandle is now 192 bytes
[*] Autohandle duplication
2024-03-13 07:50:50 +00:00