Repository navigation
Conversation
Author
|
I think I'm still leaking and need to properly implement @nobu's advice. |
Author
|
@ioquatix mentioned an alternative solution would be falling back to blocking I/O with tty devices on kqueue. |
havenwood
force-pushed
the
kqueue-console-cursor
branch
from
September 1, 2025 00:26
be65045 to
2f0be27
Compare
havenwood
force-pushed
the
kqueue-console-cursor
branch
2 times, most recently
from
September 1, 2025 00:32
465d378 to
cebd424
Compare
`IO.console.cursor` errors on kqueue-based systems when used with the
fiber scheduler.
```ruby
require 'async'
Async { IO.console(:cursor) }.wait
```
This works on Linux but raises `Errno::EINVAL: Invalid argument` with
`IO_Event_Selector_KQueue_Waiting_register` on macOS.
I don't know if it's an acceptable fix, but this patch just dups file
descriptors for stdin/stdout/stderr if detected alongside kqueue.
havenwood
force-pushed
the
kqueue-console-cursor
branch
from
September 1, 2025 05:43
cebd424 to
5f0f331
Compare
Author
|
I meant to follow up that @ioquatix pointed out this is probably better fixed in the io-event gem by making kqueue synchronous for this use case rather than a hacky solution like mine here. I'd be happy to close this PR and open an Issue if that's preferred. Thanks! |
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.
IO.console.cursorerrors on kqueue-based systems when used with the fiber scheduler.This works on Linux but raises
Errno::EINVAL: Invalid argumentwithIO_Event_Selector_KQueue_Waiting_registeron macOS.I don't know if it's an acceptable fix, but this patch just dups file descriptors for stdin/stdout/stderr if detected alongside kqueue.