Skip to content

Improve JRuby selector compatibility#193

Open
samuel-williams-shopify wants to merge 4 commits into
mainfrom
jruby-selector-compat
Open

Improve JRuby selector compatibility#193
samuel-williams-shopify wants to merge 4 commits into
mainfrom
jruby-selector-compat

Conversation

@samuel-williams-shopify

Copy link
Copy Markdown
Contributor

Summary

  • improve pure Ruby selector compatibility with JRuby by avoiding unsupported IO::Buffer operations and using nonblocking Ruby IO methods where needed
  • make Selector.nonblock restore nonblocking state explicitly and ensure the helper is loaded for the pure Ruby selector
  • add targeted JRuby skips for VM/platform gaps around nested fiber transfer, closed-IO scheduling, FIFO channels, TCP OOB priority readiness, and UNIXSocket buffer sizing
  • keep the branch based directly on main, without the old fork diagnostic workflow/test commits

Verification

  • bundle exec rubocop
  • bundle exec bake test

Note: this replaces the old interrupt-fix PR branch.

@samuel-williams-shopify

Copy link
Copy Markdown
Contributor Author

cc @headius

Assisted-By: devx/242ffd92-f36a-421a-88b9-270e5488162a
Assisted-By: devx/242ffd92-f36a-421a-88b9-270e5488162a
Assisted-By: devx/242ffd92-f36a-421a-88b9-270e5488162a
Assisted-By: devx/242ffd92-f36a-421a-88b9-270e5488162a
@headius

headius commented Jun 25, 2026

Copy link
Copy Markdown

I'll jump in to help where I can!

@ioquatix

Copy link
Copy Markdown
Member

@headius I filed a few upstream bug reports on JRuby.

IO::Buffer is not set in stone yet, but IO::Buffer#read and #write may not follow the current spec which is making things more tricky than it should be.

Also, what's the current state of Loom/io_uring etc? Just wondering if it would make sense to create a JNI for better IO. How crazy would that be?

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.

3 participants