diff options
author | Samuel Williams <samuel.williams@oriontransfer.co.nz> | 2021-12-11 18:18:15 +1300 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2021-12-11 14:29:20 +0900 |
commit | b5c4570af4c6ae7341ee03e7fc2e140192ec32d8 (patch) | |
tree | 6165e58e6a28384ea31f7187e28980e8660af415 /lib | |
parent | c91fb5db597f4ccdfe5c30bc0f63d7dbeacd4166 (diff) | |
download | ruby-b5c4570af4c6ae7341ee03e7fc2e140192ec32d8.tar.gz |
[ruby/reline] Prefer wait_readable for fiber scheduler.
https://github.com/ruby/reline/commit/06b4aa31fd
Diffstat (limited to 'lib')
-rw-r--r-- | lib/reline/ansi.rb | 2 | ||||
-rw-r--r-- | lib/reline/general_io.rb | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/lib/reline/ansi.rb b/lib/reline/ansi.rb index c564873241..00c7651d5f 100644 --- a/lib/reline/ansi.rb +++ b/lib/reline/ansi.rb @@ -142,7 +142,7 @@ class Reline::ANSI unless @@buf.empty? return @@buf.shift end - until c = @@input.raw(intr: true) { select([@@input], [], [], 0.1) && @@input.getbyte } + until c = @@input.raw(intr: true) { @@input.wait_readable(0.1) && @@input.getbyte } Reline.core.line_editor.resize end (c == 0x16 && @@input.raw(min: 0, tim: 0, &:getbyte)) || c diff --git a/lib/reline/general_io.rb b/lib/reline/general_io.rb index 5df346882a..3fafad5c6e 100644 --- a/lib/reline/general_io.rb +++ b/lib/reline/general_io.rb @@ -1,4 +1,5 @@ require 'timeout' +require 'io/wait' class Reline::GeneralIO def self.reset(encoding: nil) @@ -36,7 +37,7 @@ class Reline::GeneralIO end c = nil loop do - result = select([@@input], [], [], 0.1) + result = @@input.wait_readable(0.1) next if result.nil? c = @@input.read(1) break |