mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-01 14:58:14 +00:00
Replaces the global in-callback counter with each thread's own mipscall chain, so several threads can be inside callbacks at once, and other threads' callbacks (better priority ones right away) run while one is. Verified against pspautotests threads/callbacks/otherthread, recursion and intrnotify: - A callback nests only one level: a CB wait that would go deeper never returns on hardware, so the callback is left pending instead. - A non-CB wait inside a callback no longer runs callbacks because of the CB wait the callback interrupted. - Callbacks for a waiting thread are only taken when it beats both the running thread and every ready one. After an interrupt (which runs on the idle thread) that's the thread about to resume, not idle. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>