mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-31 12:35:51 +00:00
XNU's poll never reports POLLPRI for out-of-band data, so a guest poll that asks for it never sees the urgent byte: guest_poll aborts at the OOB case and a title waiting on priority data would sleep to its timeout. On macOS the pending byte is read from SIOCATMARK, which reports it without consuming it and has no descriptor limit, unlike the fd_set probe this replaces. POLLRDBAND is set with POLLPRI as FreeBSD 11.4's sopoll_generic does, and the wait takes the sliced path main already uses for a kqueue wait, so it wakes on the next slice instead of at the deadline. recv(MSG_OOB | MSG_PEEK) was measured to consume the byte on macOS 27.0.1 and kevent with NOTE_OOB does not fire there, which is why the probe is SIOCATMARK. The select and libSceNet poll paths still miss urgent data on macOS and are recorded in the debt entry.