mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-22 08:33:12 -05:00
ProsperoRadio (PPSA99001) stops at 33.7 s on Windows, with #3649 applied so that it gets past poll, on the throw from #3840: what(): fcntl: record locks are not implemented on Windows, command=12, fd=3 F_GETLK, F_SETLK, F_SETLKW and the F_OGETLK, F_OSETLK and F_OSETLKW forms now follow FreeBSD 11.4's kern_fcntl and lf_advlockasync (8c639945): an SEEK_CUR start is resolved against the descriptor offset (EOVERFLOW past OFF_MAX), F_RDLCK needs read access and F_WRLCK write access (EBADF), another type is EINVAL, and the range is checked against the file size for SEEK_END (EINVAL for a negative start or an unknown whence, EOVERFLOW past OFF_MAX). The guest is one process, and lf_blocks never lets locks of one owner conflict, so whichever descriptor or thread asks, F_SETLK and F_SETLKW succeed without waiting and F_GETLK reports F_UNLCK, as on the console. Nothing is held on the host: Windows byte-range locks are mandatory and would fail the guest's own reads and writes through other descriptors. A lock from the end of a directory throws. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>