Ruby 拡張機能を作成し、関数を使用していますData_wrap_struct
。
Ruby のマーク アンド スイープ ガベージ コレクション プロセスに参加するには、構造体を解放するルーチンと、構造体から他の構造体への参照をマークするルーチンを定義する必要があります。クラシックfree
関数を渡してメモリを解放しますが、マーク関数の使用方法がわかりません。
私の構造体はこのように聞こえます
typedef struct
{
int x;
int y;
} A;
typedef struct
{
A collection[10];
int current;
} B;
collection
構造体 Bの参照をマークするには、マーク関数が必要だと思います。
マーク機能がどのように機能するかを確認するための例を誰かに見せてもらえますか?