Я пишу расширение Ruby, а я использую функцию Data_wrap_struct
.
Чтобы участвовать в процессе сборки мусора Ruby mark-and-sweep, мне нужно определить процедуру для освобождения моей структуры и процедуру для пометки любых ссылок из моей структуры на другие структуры. Я передаю классическую бесплатную
функцию для освобождения памяти, но я не знаю, как использовать функцию отметки.
мои структуры звучат так
typedef struct
{
int x;
int y;
} A;
typedef struct
{
A collection[10];
int current;
} B;
Я думаю, что мне нужна функция отметки, чтобы отмечать ссылки в коллекции
структуры B.
Кто-нибудь может показать мне пример, чтобы увидеть, как функция отметки работает?