문제

수업을 정의하는 루비 확장을 쓰고 있습니다. 내가 사용하는 경우 Data_Wrap_Struct() 내 콜백을 구현합니다 rb_define_alloc_func(), 인스턴스 변수를 수동으로 표시하고 자유롭게해야합니까? 아니면 여전히 나를 위해 처리되어 있습니까?

도움이 되었습니까?

해결책

Ruby의 GC는 Ruby Object의 인스턴스 변수에서 참조 된 Ruby 객체를 수집합니다. 당신은 무료 루비 인스턴스 변수를 스스로 자유롭게 할 필요가없고 안됩니다 (즉, 액세스 한 객체 rb_iv_set() / rb_iv_get() 연장에서).

그러나 포장 된 경우 C 구조 Ruby Objects를 참조하면 mark 당신이 지나가는 콜백 Data_Wrap_Struct().

(그리고 당신은 항상 기본 구조물을 자유롭게하고 파일, 소켓 등과 같은 다른 정리를 수행해야합니다. free 콜백.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top