Skip to content

Conversation

@noteflakes
Copy link

@noteflakes noteflakes commented Nov 21, 2025

This PR adds an implementation of process_wait using io_uring_prep_waitid when available. Since we also need to directly instantiate a Process::Status object, we also check for the existence of rb_process_status_new (see ruby/ruby#15213).

Note: the use of pidfd_open (and then polling on the fd) means that doing Process.wait(-1) or Process.wait(0) will fail.

Types of Changes

  • Performance improvement.

Contribution

We check for the existence of both
`io_uring_prep_waitid` and
`rb_process_status_new`. See also
github.com/ruby/ruby/pull/15213.

Note: the use of `pidfd_open`` (and then polling
on the fd) means that doing `Process.wait(-1)` or
`Process.wait(0)` will fail.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant