Skip to content

Commit 63522b5

Browse files
Watson1978claude
andcommitted
レビュー対応: Ractor の例が 4.0 専用 API を使っていた点を修正
Ractor は 4.0 で API が入れ替わっており、例に使っていた Ractor#value と Ractor#close は 4.0 で追加されたもの、3.0 から 3.4 では Ractor#take と Ractor#close_incoming になる。ファイルは since: "3.0" なので、3.0 から 3.4 の ページには、その版では動かない例が描画されていた。 実機で確認した API の対応は以下のとおり。 3.0 / 3.1 / 3.4 take / close_incoming / close_outgoing はあり、 value / close は無し 4.0 value / close はあり、take / close_incoming / close_outgoing は削除済み 単一のメソッドでは両対応できないため、RemoteError.md と ClosedError.md の 例をコードブロックの中で #@SInCE 4.0 / #@else で出し分けた。 IsolationError.md の Ractor.make_shareable(proc {}) は、3.0 では例外にならず 3.1 以降で Ractor::IsolationError になる。例を #@SInCE 3.1 で囲み、3.0 側には 理由を #@#noexample で残した。 RemoteError の message ("thrown by remote Ractor.") と cause の内容は 3.0 から 4.0 まで変わらないことを確認済み。 3.0 / 3.1 / 3.4 / 4.0 でデータベースを生成し、3.4 以前では take と close_incoming が、4.0 では value と close が描画されること、および IsolationError の例が 3.1 以降にだけ現れることを確認した。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 543a382 commit 63522b5

3 files changed

Lines changed: 19 additions & 1 deletion

File tree

manual/api/ractor/ClosedError.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,20 @@ since: "3.0"
1212

1313
```ruby
1414
r = Ractor.new do
15+
#@since 4.0
1516
Ractor.current.close
17+
#@else
18+
Ractor.current.close_incoming
19+
#@end
1620
Ractor.receive # ここで Ractor::ClosedError が発生する
1721
end
1822

1923
begin
24+
#@since 4.0
2025
r.value
26+
#@else
27+
r.take
28+
#@end
2129
rescue Ractor::RemoteError => e
2230
# 他の Ractor で発生した例外は Ractor::RemoteError に包まれて伝わる
2331
p e.cause.class # => Ractor::ClosedError

manual/api/ractor/IsolationError.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,14 @@ since: "3.0"
66

77
shareable にできないオブジェクトを shareable にしようとした場合に発生します。
88

9+
#@since 3.1
10+
911
```ruby
1012
Ractor.make_shareable(proc { }) # ~> Ractor::IsolationError
1113
```
1214

15+
#@else
16+
#@#noexample 3.0 では Ractor.make_shareable に Proc を渡しても例外にならないため
17+
#@end
18+
1319
- **SEE** [c:Ractor], [m:Ractor.make_shareable]

manual/api/ractor/RemoteError.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,13 @@ since: "3.0"
1212
```ruby
1313
r = Ractor.new { raise "boom" }
1414
begin
15+
#@since 4.0
1516
r.value
17+
#@else
18+
r.take
19+
#@end
1620
rescue Ractor::RemoteError => e
17-
p e.message # => "thrown by remote Ractor."
21+
p e.message # => "thrown by remote Ractor."
1822
p e.cause.message # => "boom"
1923
end
2024
```

0 commit comments

Comments
 (0)