ruby-changes:70156
From: Samuel <ko1@a...>
Date: Sat, 11 Dec 2021 14:29:38 +0900 (JST)
Subject: [ruby-changes:70156] b5c4570af4 (master): [ruby/reline] Prefer wait_readable for fiber scheduler.
https://git.ruby-lang.org/ruby.git/commit/?id=b5c4570af4 From b5c4570af4c6ae7341ee03e7fc2e140192ec32d8 Mon Sep 17 00:00:00 2001 From: Samuel Williams <samuel.williams@o...> Date: Sat, 11 Dec 2021 18:18:15 +1300 Subject: [ruby/reline] Prefer wait_readable for fiber scheduler. https://github.com/ruby/reline/commit/06b4aa31fd --- lib/reline/ansi.rb | 2 +- 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 c5648732419..00c7651d5ff 100644 --- a/lib/reline/ansi.rb +++ b/lib/reline/ansi.rb @@ -142,7 +142,7 @@ class Reline::ANSI https://github.com/ruby/ruby/blob/trunk/lib/reline/ansi.rb#L142 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 5df346882a3..3fafad5c6ef 100644 --- a/lib/reline/general_io.rb +++ b/lib/reline/general_io.rb @@ -1,4 +1,5 @@ https://github.com/ruby/ruby/blob/trunk/lib/reline/general_io.rb#L1 require 'timeout' +require 'io/wait' class Reline::GeneralIO def self.reset(encoding: nil) @@ -36,7 +37,7 @@ class Reline::GeneralIO https://github.com/ruby/ruby/blob/trunk/lib/reline/general_io.rb#L37 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 -- cgit v1.2.1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/