• win64-main-9cdc855 9cdc8550ec

    Ghost released this 2026-07-13 17:29:17 -04:00 | 503 commits to 1016_part3 since this release

    Two follow-ups to upstream #102's condition-variable changes, as analyzed
    in upstream issue #113:

    • The pending-signal consume path reacquired the guest mutex while still
      holding the condition state lock, inverting lock order against
      cond-signal (mutex -> SyncRoot) and deadlocking both threads. Leave the
      condition lock before relocking, matching the normal wake path.
      This unfroze Dreaming Sarah (PPSA02929) at its title screen.

    • pthread_cond_timedwait's third argument is a pointer to an absolute
      CLOCK_REALTIME timespec, not a relative microsecond count; the guest
      address was being truncated into a duration, yielding arbitrary
      timeouts. Read the timespec and convert to a relative wait.
      scePthreadCondTimedwait keeps its separate relative-time ABI.

    Downloads