Commit Graph
25 Commits
Author SHA1 Message Date
libretroadmin f1208a7a5a Make threading lock-free
The core and the headless tools no longer use mutexes, condition variables,
spinlocks, std::atomic, std::thread or volatile flags. Threads hand off through
libretro-common's retro_atomic and rthreads plus a few small pieces on top of
them in Common/Thread: Thread, MpscQueue, EventCounter, ParkingLot waits and
ReaderGate. Every wait blocks until it's woken; nothing polls on a timer.

State that only one thread touches just loses its lock. The PSP filesystem,
sceIo and the savedata dialog now belong to the emulation thread: async reads
and writes run when they're queued and complete later in emulated time, and
the IO and savedata threads are gone. The friend finder only talks to the
adhoc server and hands what it gets to the emulation thread. GPU init always
runs on the thread that starts the game.

The Vulkan render and compile queues, pipeline and render pass caches, delete
list and SPIR-V cache, the GL render queue, the software renderer's jit caches,
the file loader caches, the web debugger, UPnP, input, savestates, logging and
the GE debugger all hand off through queues and atomics. The IR jit's spinning
profiler thread goes.

A CPU thread with nothing to run now sleeps until work is queued instead of
spinning. Headless with --debugger waits for a client while stopped, and ends
the run once every client that connected has left. Web server shutdown keeps
servicing the CPU queue until the server has finished.
2026-10-09 04:56:16 +02:00
Henrik Rydgård 0596ee97f6 More memory access cleanup 2026-08-11 20:14:01 +02:00
Henrik Rydgård 05b82d6ce4 Allow passing in a custom resolver to HTTPRequest and Connection. This inverts the bad dependency. 2025-08-06 00:16:34 +02:00
trigger 65d780b160 move ProcessHostnameWithInfraDNS out of sceNet 2025-07-31 13:03:57 -07:00
trigger 787cd9b119 infra dns for http requests 2025-07-27 17:47:36 -07:00
Henrik Rydgård ebcf6be42c When (successfully) using dyn_dns, remove fixed lookups.
Additionally some various cleanup.
2025-04-08 00:32:40 +02:00
Henrik Rydgård 89c0b5f20b sceNetResolver: Move error codes to enum, modernize logging 2025-04-07 22:16:32 +02:00
Henrik Rydgård 5f7b698012 Lots of logging and cleanup. 2025-04-07 21:40:52 +02:00
Henrik Rydgård 4e25f44eef Rename some module-related functions to include HLE where appropriate 2025-03-31 11:17:50 +02:00
Henrik Rydgård 28b2c7f540 HLE log rename part 1: Remove duplicate log functions. Return type should be determined by metadata. 2025-01-29 09:45:39 +01:00
Henrik Rydgård f69f94284f Move the hardcoded domains from sceNetResolver.cpp to the json. 2025-01-20 20:58:22 +01:00
Henrik Rydgård 9ba2a2f52d Resolver change for outrun 2025-01-17 12:35:07 +01:00
Henrik Rydgård 4757f8c872 Replace the NetResolver class with a simple struct 2025-01-17 09:44:13 +01:00
Henrik Rydgård b94b9b077d Refactor away the unnecessary wrapper from sceNetResolver 2025-01-17 09:38:20 +01:00
Henrik Rydgård 9d691d9866 Show revival team credits on the pause screen 2025-01-15 09:17:15 +01:00
Henrik Rydgård 05906bc8f3 Finish the format, actually use the things from it 2025-01-12 17:25:59 +01:00
Henrik Rydgård c5cde0f218 Remove "Secondary DNS" as a setting. 2025-01-12 17:25:57 +01:00
Henrik Rydgård fb99b6ff2b Logging cleanup in sceNetResolver 2025-01-11 10:22:23 +01:00
Henrik Rydgård 7e476fedf4 Warning fix, buildfix, logfix 2025-01-11 00:37:36 +01:00
Henrik Rydgård eced84a46b Use the new direct DNS resolver 2025-01-10 21:37:36 +01:00
Henrik Rydgård 293c087577 Add a new IPV4 direct DNS lookup function. Allows us to use the configured DNS directly. 2025-01-10 21:37:36 +01:00
Henrik Rydgård 2a0e3b1084 Move out a utility function to Common/Net 2025-01-09 09:23:33 +01:00
Henrik Rydgård 895d8eb7fa Try ANR2ME's sceNetInet implementation 2025-01-07 10:31:32 +01:00
White Blood Cell 87de5b6385 Add header to sceNetInet and audit hleLogError calls for SetLastError. 2025-01-04 17:56:58 +01:00
White Blood CellandAdamN ee0b0fce6c sceNetInet and sceNetResolver support.
Co-authored-by: AdamN <anr2000@gmail.com>
2025-01-04 17:28:36 +01:00