Есть ли способ освободить неуправляемые ресурсы при сборе структуры Go?

У меня есть указатель на тип C, обернутый структурой Go, вот так:

type Wrapper struct {
    unmanaged *C.my_c_type
}

Тип C, в свою очередь, имеет следующие функции:

my_c_type* make_c_type();
void free_c_type(my_c_type *ct);

Есть ли способ, которым я могу гарантировать, что free_c_typeвызывается всякий раз, когда завершается экземпляр Wrapper?

12
задан Stephen Weinberg 5 August 2012 в 06:57
поделиться