Data_wrap_struct 및 마크 기능
-
28-10-2019 - |
문제
저는 Ruby 확장을 작성하고 있으며 Data_wrap_struct
함수를 사용합니다.
루비의 마크 앤 스윕 가비지 컬렉션 프로세스에 참여하려면 구조를 해제하는 루틴과 구조에서 다른 구조로의 참조를 표시하는 루틴을 정의해야합니다.메모리를 확보하기 위해 고전적인 free
함수를 전달했지만 마크 함수를 사용하는 방법을 모릅니다.
내 구조체는 다음과 같이 들립니다 라코 디스
구조체 B의 collection
에서 참조를 표시하는 표시 기능이 필요하다고 생각합니다.
누군가 표시 기능이 작동하는 방식을보기위한 예를 보여줄 수 있나요?
해결책
표시 기능은 C 구조가 소유 한 Ruby 개체 를 표시하는 데 사용됩니다. 라코 디스
구조가 소유 한 개체가 표시되지 않은 경우 가비지 수집기가이를 쓸 수 있고 코드가 최종 개체를 사용하려고 할 수 있습니다.
제휴하지 않습니다 StackOverflow