mirror of
https://github.com/libretro/parallel-gx1.git
synced 2026-11-07 12:37:59 -10:00
Every Common::SPSCQueue goes, and with it the mutexes in front of the multi-producer ones: - WorkQueueThread runs on an sthread fed by an mpsc_stack, so any thread pushes without a lock, and parks on retro_eventcount. - AsyncRequests hands requests to the video thread through a retro_waitable_spsc of pointers; a blocking request lives on the caller's stack. - CoreTiming's off-thread events and the DVD thread's results move to mpsc_stack, dropping the CoreTiming write lock. - Real Wiimote reports cross threads as fixed 32-byte records in retro_spsc rings; the read thread receives straight into the ring. - Bluetooth passthrough frees transfers through an mpsc_stack whose nodes live in the transfers' own buffers, queues incoming packets in mirrored retro_spsc rings and hands ACL data to IOS in place. - PerformanceTracker's frame times move to a retro_spsc ring.