Skip to content

Commit 473b334

Browse files
Document changes related to Fibers and destructors (#260)
* fiberの翻訳 * 表現を他のページと統一 * 誤字の修正 * `cycle collection` の訳を他のページでの同等の表現に統一 --------- Co-authored-by: 武田 憲太郎 <[email protected]>
1 parent 0a05997 commit 473b334

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

Diff for: language/fibers.xml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<!-- $Revision$ -->
3-
<!-- EN-Revision: 4985eb0aa7bb240fa3bf7c17f76e1609faef327e Maintainer: mumumu Status: ready -->
3+
<!-- EN-Revision: 376d3f9c2ef7fcd64d8b8503d552013acefb8b5b Maintainer: mumumu Status: ready -->
44
<chapter xml:id="language.fibers" xmlns="http://docbook.org/ns/docbook">
55
<title>ファイバー</title>
66

@@ -56,8 +56,8 @@
5656
</para>
5757
<note>
5858
<simpara>
59-
現状の制限により、
60-
ファイバーをオブジェクトのデストラクタ中で切り替えることはできません
59+
PHP 8.4.0 より前のバージョンでは
60+
ファイバーをオブジェクトの <link linkend="language.oop5.decon.destructor">デストラクタ</link> 中で切り替えることはできませんでした
6161
</simpara>
6262
</note>
6363

Diff for: language/oop5/decon.xml

+15-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<!-- $Revision$ -->
3-
<!-- EN-Revision: 9f351a14a749721a74df1dc6ac9533cf796a652e Maintainer: hirokawa Status: ready -->
3+
<!-- EN-Revision: 376d3f9c2ef7fcd64d8b8503d552013acefb8b5b Maintainer: hirokawa Status: ready -->
44
<!-- CREDITS: shimooka,mumumu -->
55

66
<sect1 xml:id="language.oop5.decon" xmlns="http://docbook.org/ns/docbook">
@@ -377,6 +377,20 @@ $obj = new MyDestructableClass();
377377
HTTP ヘッダはすでに送信されています。スクリプトのシャットダウン時の作業ディレクトリは、
378378
SAPI によっては (たとえば Apache など) 異なります。
379379
</para>
380+
<para>
381+
デストラクタが自身のオブジェクトへの新しい参照を作成した場合、参照カウントが再びゼロになったときや
382+
シャットダウンシーケンス中に、再度呼び出されることはありません。
383+
</para>
384+
<para>
385+
PHP 8.4.0 以降、 <link linkend="features.gc.collecting-cycles">ガベージサイクルの収集</link> が
386+
<link linkend="language.fibers">ファイバー</link>の実行中に発生した場合、
387+
回収がスケジュールされたオブジェクトのデストラクタは、 <literal>gc_destructor_fiber</literal>と呼ばれる
388+
別のファイバー内で実行されます。
389+
このファイバーが中断された場合、残りのデストラクタを実行するために新しいファイバーが作成されます。
390+
中断された <literal>gc_destructor_fiber</literal> はガベージコレクタによって参照されなくなり、
391+
他の参照がなければ回収される可能性があります。
392+
デストラクタが中断されたオブジェクトは、デストラクタが復帰するかファイバー自体が回収されるまで回収されません。
393+
</para>
380394
</note>
381395
<note>
382396
<para>

0 commit comments

Comments
 (0)