Skip to content

Fix io_uring scheduler v4 compilation - #214

Merged
samuel-williams-shopify merged 1 commit into
mainfrom
fix-scheduler-v4-compilation
Aug 26, 2026
Merged

samuel-williams-shopify merged 1 commit into
mainfrom
fix-scheduler-v4-compilation

Conversation

@samuel-williams-shopify

Copy link
Copy Markdown
Contributor

Summary

  • Keep the legacy io_read, io_pread, io_write, and io_pwrite implementations entirely within their scheduler-version conditional branches.
  • Make native extension build failures propagate from the Bake build task.

Background

The scheduler interface v4 branches returned through the locked-buffer callbacks, but four premature #endif directives also compiled the legacy implementations without their local variables. This broke io-event 1.20.0 on Linux with liburing under Ruby 4.0 and Ruby head.

The existing io-event CI did encounter these compiler errors, but bake.rb#build ignored the failed system results. Tests then continued with the pure-Ruby selector, allowing the jobs to report success. Raising on failed build commands ensures future native compilation failures fail CI.

This was observed in socketry/async#469.

Testing

  • Ruby 4.0.5 on macOS: 289 passed, 15 skipped (910 assertions).
  • Linux Ruby 4.0/head with liburing will be exercised by CI.

Signed-off-by: Samuel Williams <samuel.williams@shopify.com>
@samuel-williams-shopify
samuel-williams-shopify merged commit 7510bde into main Aug 26, 2026
58 of 64 checks passed
@samuel-williams-shopify
samuel-williams-shopify deleted the fix-scheduler-v4-compilation branch August 26, 2026 02:38
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