Skip to content

Commit

Permalink
Document changes related to Fibers and destructors (#260)
Browse files Browse the repository at this point in the history
* fiberの翻訳

* 表現を他のページと統一

* 誤字の修正

* `cycle collection` の訳を他のページでの同等の表現に統一

---------

Co-authored-by: 武田 憲太郎 <takeda@youmind.jp>
  • Loading branch information
Ippey and KentarouTakeda authored Feb 11, 2025
1 parent 0a05997 commit 473b334
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 4 deletions.
6 changes: 3 additions & 3 deletions language/fibers.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 4985eb0aa7bb240fa3bf7c17f76e1609faef327e Maintainer: mumumu Status: ready -->
<!-- EN-Revision: 376d3f9c2ef7fcd64d8b8503d552013acefb8b5b Maintainer: mumumu Status: ready -->
<chapter xml:id="language.fibers" xmlns="http://docbook.org/ns/docbook">
<title>ファイバー</title>

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

Expand Down
16 changes: 15 additions & 1 deletion language/oop5/decon.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 9f351a14a749721a74df1dc6ac9533cf796a652e Maintainer: hirokawa Status: ready -->
<!-- EN-Revision: 376d3f9c2ef7fcd64d8b8503d552013acefb8b5b Maintainer: hirokawa Status: ready -->
<!-- CREDITS: shimooka,mumumu -->

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

0 comments on commit 473b334

Please sign in to comment.