From 8ff4821cea533df8af5afc912c3c4ecd9d69f0b2 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Tue, 4 Nov 2025 18:03:47 +0900 Subject: [PATCH 1/2] Deprecate `IO#nread` and `IO#ready?` To use these methods, busy loop is necessary somewhere. Use other method to wait instead. --- ext/io/wait/wait.c | 2 ++ ext/java/org/jruby/ext/io/wait/IOWaitLibrary.java | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/ext/io/wait/wait.c b/ext/io/wait/wait.c index bec04cb..d9653e9 100644 --- a/ext/io/wait/wait.c +++ b/ext/io/wait/wait.c @@ -83,6 +83,7 @@ io_nread(VALUE io) int len; ioctl_arg n; + rb_category_warn(RB_WARN_CATEGORY_DEPRECATED, "IO#nread is deprecated; use wait_readable instead"); GetOpenFile(io, fptr); rb_io_check_char_readable(fptr); len = rb_io_read_pending(fptr); @@ -142,6 +143,7 @@ io_ready_p(VALUE io) struct timeval tv = {0, 0}; #endif + rb_category_warn(RB_WARN_CATEGORY_DEPRECATED, "IO#ready? is deprecated; use wait_readable instead"); GetOpenFile(io, fptr); rb_io_check_char_readable(fptr); if (rb_io_read_pending(fptr)) return Qtrue; diff --git a/ext/java/org/jruby/ext/io/wait/IOWaitLibrary.java b/ext/java/org/jruby/ext/io/wait/IOWaitLibrary.java index c4ac97d..b0ec03f 100644 --- a/ext/java/org/jruby/ext/io/wait/IOWaitLibrary.java +++ b/ext/java/org/jruby/ext/io/wait/IOWaitLibrary.java @@ -44,6 +44,8 @@ import java.nio.channels.SelectionKey; +import static org.jruby.api.Warn.warnDeprecated; + /** * @author Nick Sieger */ @@ -62,6 +64,7 @@ public static IRubyObject nread(ThreadContext context, IRubyObject _io) { // ioctl_arg n; RubyIO io = (RubyIO)_io; + warnDeprecated(context, "IO#nread is deprecated; use wait_readable instead"); fptr = io.getOpenFileChecked(); fptr.checkReadable(context); len = fptr.readPending(); @@ -83,6 +86,7 @@ public static IRubyObject ready(ThreadContext context, IRubyObject _io) { OpenFile fptr; // ioctl_arg n; + warnDeprecated(context, "IO#ready? is deprecated; use wait_readable instead"); fptr = io.getOpenFileChecked(); fptr.checkReadable(context); if (fptr.readPending() != 0) return context.tru; From bf41116ff534cba5f5c361e91b539245c5cd61a5 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Wed, 12 Nov 2025 17:28:13 +0900 Subject: [PATCH 2/2] Bump up to 0.3.6 --- io-wait.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/io-wait.gemspec b/io-wait.gemspec index 3d75aab..e54c2db 100644 --- a/io-wait.gemspec +++ b/io-wait.gemspec @@ -1,4 +1,4 @@ -_VERSION = "0.3.5" +_VERSION = "0.3.6" Gem::Specification.new do |spec| spec.name = "io-wait"