2026-09-02 - (/loop) PPSA25872's unnamed spin (naming-gated) + pthread attr setters

Spread off PPSA04263 to PPSA25872 (Unity/il2cpp). Its wall (image+0x7b594e, null read) is the same shape as PPSA04263's WaitEventFlag spin: PS5Util::0xf948d02a4f9f5ace is 91% of 39,929 calls (36,495) against a placeholder. But two things make it harder, and neither is oracle-free:

While there, cleared four unimplemented attr setters flagged across PPSA04263/PPSA21564: scePthreadAttrSet{schedpolicy,inheritsched,affinity,guardsize}. These are honest, not accept- and-lie: the attr object is an 8-word block with a store/read pair (attr_set/attr_get), and offsets 16-48 were free, so each stores its value where a matching get reads it back - the setter's whole contract. Affinity is stored, not applied (orbistoun does not pin guest threads; documented). clippy/fmt/tests clean; no regression - PPSA04263 (28,343) and PPSA21564 (500,257) unchanged.

State of the overnight crunch. The readily oracle-free work is largely mined out. Tonight took PPSA04263 from a 32-call death to deep guest logic through four structural fixes (map-into-reservation D460, MAPPING_BASE collision D463, per-thread TLS D464, blocking WaitEventFlag D465) plus the return- value and reserve-failure diagnostics (D459, D462) and a run of standard-library stubs. What remains is gated on things this loop cannot do without data: the two int 0x41 guest asserts (PPSA04263, PPSA21564) want the assert's read traced to the value we got wrong; PPSA25872's spin wants a name; _Getpctype wants the ctype table off hardware (obSCEne); PPSA28061 wants the GPU. Next tick will finish the last clearly-standard stubs (vsprintf_s, sceKernelSetVirtualRangeName) and then the loop is at the honest edge of what "doesn't need data" can reach.