Ruby 3.3 リファレンスマニュアル

instance method IO#timeout=

timeout=(numeric) -> NumericRuby 3.2 から[permalink][rdoc][edit]
timeout=(nil) -> nil

self に入出力のタイムアウトを秒単位で設定します。

設定すると、可能な限りすべてのブロッキング操作にこのタイムアウトが適用されます。操作が設定した時間を超えると IO::TimeoutError が発生します。

影響を受けるのは IO#getsIO#putsIO#readIO#writeIO#wait_readableIO#wait_writable などです (Socket のブロッキング操作にも影響します)。

[PARAM] numeric:
タイムアウトの秒数を数値で指定します。 nil を指定するとタイムアウトを解除します。
r, w = IO.pipe
r.timeout = 0.1

r.read # ~> IO::TimeoutError

[SEE_ALSO] IO#timeout, IO::TimeoutError