mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-09-03 03:05:18 +02:00
Into()'s same-thread branch called Core_RequestCPUStep(CPUStepType::Into, 1) without checking its return value. Core_RequestCPUStep() can genuinely fail (a step/run request is already queued this host frame - see its own "Can't submit two steps in one host frame" ERROR_LOG) - on failure, no step happens and no cpu.stepping event ever fires, but cpu.stepInto's own contract is "no immediate response, a cpu.stepping event follows", so a rejected request looked identical to a request still in flight: nothing to distinguish "wait longer" from "this silently failed, nothing is ever coming." This is part of the same failure family as the delay-slot race just fixed in PrepareResume() (previous commit) - Core_RequestCPUStep()'s one-at-a-time guard rejecting a step no caller in this file checked for. Now calls req.Fail() on rejection so the client gets an explicit answer instead of an indefinite wait. Updated the cpu.stepInto doc comment to note the new (retryable) failure mode. Verified via UnitTest.exe all (49/49). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GZq8ZtJmFY7bkX5FVkr3P9