문제

저는 Ruby 확장을 작성하고 있으며 Data_wrap_struct 함수를 사용합니다.

루비의 마크 앤 스윕 가비지 컬렉션 프로세스에 참여하려면 구조를 해제하는 루틴과 구조에서 다른 구조로의 참조를 표시하는 루틴을 정의해야합니다.메모리를 확보하기 위해 고전적인 free 함수를 전달했지만 마크 함수를 사용하는 방법을 모릅니다.

내 구조체는 다음과 같이 들립니다 라코 디스

구조체 B의 collection에서 참조를 표시하는 표시 기능이 필요하다고 생각합니다.

누군가 표시 기능이 작동하는 방식을보기위한 예를 보여줄 수 있나요?

도움이 되었습니까?

해결책

표시 기능은 C 구조가 소유 한 Ruby 개체 를 표시하는 데 사용됩니다. 라코 디스

구조가 소유 한 개체가 표시되지 않은 경우 가비지 수집기가이를 쓸 수 있고 코드가 최종 개체를 사용하려고 할 수 있습니다.

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