mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-29 12:15:39 +00:00
FreeBSD's kern_pselect installs the mask and kern_select sleeps with PCATCH, so a pending signal that the new mask unblocks makes the call return EINTR once the descriptors have been scanned. Here the handler ran inside the mask swap and select then waited the full timeout, or forever with no timeout. The swap now reports whether a handler ran, and pselect then scans the descriptors once without waiting: a ready descriptor, a zero timeout or an invalid argument keep select's answer, and otherwise the call fails with EINTR and leaves the descriptor sets unchanged. Co-Authored-By: Claude Opus 5.5 <[email protected]>