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

function rb_gc_register_address

[edit]
void rb_gc_register_address(VALUE *addr)

ポインタ addr が指す変数を GC の対象にします。

addr は呼び出した Ractor に登録され、その Ractor の GC だけが格納されたオブジェクトをマークします。どの Ractor からでも登録できますが、*addr に格納できる値は、特別な定数、shareable なオブジェクト、登録した Ractor が所有する unshareable なオブジェクトに限ります。他の Ractor の unshareable なオブジェクトを格納すると、addr が参照したままオブジェクトが解放され、use-after-free になることがあります。プロセスと同じ寿命のアドレス (static な VALUE) は、main Ractor から登録するか、shareable な値だけを格納してください。登録した Ractor が Ractor#value で join されると、残りの登録は join した Ractor に移ります。そうでなければ、その Ractor が回収されたときに main Ractor に移ります。 [feature#22277]