Skip to content

Commit 4e3cdb4

Browse files
Watson1978claude
andcommitted
Thread: リンク切れと、3.1 以降で動かないサンプルコードを修正
静的 HTML を生成して href を検証したところ、Thread.md に前からある リンク切れが 2 種類あった。調べると片方はサンプルコード自体が動かない 状態だったため、あわせて直す。 - [c:Thread#raise] -> [m:Thread#raise] メソッドを c: (クラス参照) で書いている記法ミス。bitclust の [c:...] は リンク先の存在確認をしないため、静かにリンク切れになっていた。 - [c:TimeoutError] -> [c:Timeout::Error] (2箇所) TimeoutError は 3.1 で削除されており、実在するのは Timeout::Error だけ。 - 「TimeoutError 対策」節のサンプルを Timeout::Error / Timeout.timeout に修正 TimeoutError と Object#timeout はどちらも 3.1 で削除されている。実機では 2.7 / 3.0 では動く (Object#timeout is deprecated の警告つき) が、3.1 以降は NameError / NoMethodError になり、サンプルとして成立していなかった。 Timeout::Error / Timeout.timeout は 2.7〜4.0 のすべてで動くため、版分岐は不要。 - 見出し「TimeoutError 対策」も「Timeout::Error 対策」に揃えた。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent 5205637 commit 4e3cdb4

1 file changed

Lines changed: 10 additions & 10 deletions

File tree

manual/api/_builtin/Thread.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,7 @@ flag = false # スレッド停止
442442

443443
### 使い方
444444

445-
例:[c:Thread#raise] 発生のタイミングを制御する例
445+
例:[m:Thread#raise] 発生のタイミングを制御する例
446446

447447
```ruby
448448
th = Thread.new do
@@ -465,24 +465,24 @@ th.raise "stop"
465465
[c:RuntimeError] を無視(延期)している間はリソースの割り当てや ensure
466466
節でリソースの解放を安全に行う事ができます。
467467

468-
#### TimeoutError 対策
468+
#### Timeout::Error 対策
469469

470-
例:[c:TimeoutError] 発生のタイミングを制御する例
470+
例:[c:Timeout::Error] 発生のタイミングを制御する例
471471

472472
```ruby
473473
require 'timeout'
474-
Thread.handle_interrupt(TimeoutError => :never) {
475-
timeout(10){
476-
# TimeoutError => :never の指定により、ここでは TimeoutError が発生しない。
477-
Thread.handle_interrupt(TimeoutError => :on_blocking) {
478-
# :on_blocking な処理は TimeoutError が発生し得る。
474+
Thread.handle_interrupt(Timeout::Error => :never) {
475+
Timeout.timeout(10){
476+
# Timeout::Error => :never の指定により、ここでは Timeout::Error が発生しない。
477+
Thread.handle_interrupt(Timeout::Error => :on_blocking) {
478+
# :on_blocking な処理は Timeout::Error が発生し得る。
479479
}
480-
# TimeoutError => :never の指定により、ここでは TimeoutError が発生しない。
480+
# Timeout::Error => :never の指定により、ここでは Timeout::Error が発生しない。
481481
}
482482
}
483483
```
484484

485-
この例を ensure 節での [c:TimeoutError] 発生に応用する事でリソースリー
485+
この例を ensure 節での [c:Timeout::Error] 発生に応用する事でリソースリー
486486
クに備える事ができます。[m:Timeout?.timeout] はスレッドを使って実装さ
487487
れているため、Thread.handle_interrupt による制御が有効です。
488488

0 commit comments

Comments
 (0)