event/kqueue: add EVFILT_MACHPORT - #1661
Open
utzcoz wants to merge 1 commit into
Open
Conversation
Mach ports are the only IPC on Apple platforms that can carry a port right, so anything built on them needs a way to wait on one. kqueue has EVFILT_MACHPORT for that, but there was no way to reach it from here. Report readiness only, with no fflags: the filter can also dequeue a message into a buffer supplied through the kevent64 extension fields, which this API does not model. Waiting for a message and then receiving it is the common case and needs none of that. The identifier is a mach_port_name_t rather than a file descriptor, so it gets a type of its own instead of reusing RawFd.
utzcoz
force-pushed
the
kqueue-machport
branch
from
August 13, 2026 16:57
ca96c72 to
3c7e493
Compare
Author
|
Looks like CI failures are not related this PR: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Mach ports are the only IPC on Apple platforms that can carry a port right, so anything built on them needs a way to wait on one. kqueue has EVFILT_MACHPORT for that, but there was no way to reach it from here.
Report readiness only, with no fflags: the filter can also dequeue a message into a buffer supplied through the kevent64 extension fields, which this API does not model. Waiting for a message and then receiving it is the common case and needs none of that.
The identifier is a mach_port_name_t rather than a file descriptor, so it gets a type of its own instead of reusing RawFd.