제도에서 자원 획득을 초기화하는 것이 있습니까?RAII에서 Scheme?
GCII 언어에서는 RAII가 잘 작동하지 않는다는 것을 알고 있습니다. (객체가 파괴되었다는 것을 알지 못하기 때문에). 그러나 Scheme에는 연속체, 동적 바람 및 클로저와 같은 유용한 요소가 있습니다.이 조합을 사용하여 RAII를 구현하는 방법이 있습니까?
그렇다면 스키마가 RAII를 사용하지 않도록 코드를 설계하는 방법은 무엇입니까?
는 [I가로 실행하는 일반적인 예는 다음과 같다 : 나는 3D 메쉬를, 나는 버텍스 버퍼 오브젝트가에 atached있는 메쉬가 더 이상 사용하는 경우, , 나는 VBO가 해제 싶지 .]
고마워!
안녕하세요. 내 대답이 너를 만족 시키면, 아니면 네가 뭔가를 찾고 있다면 궁금해. –
당신의 반응은 그것의 계획이 주어진만큼 좋다고 생각합니다. 우리는 어느 정도 수준에서 모델이 "죽을 때"를 알고 vbo를 포기해야합니다. 그러나 RAII + GC에서는 사전에이를 알 필요가 없습니다. "모델, 내가 언제 죽을 지 모르겠지만, 당신이 할 때 VBO를 포기할 것입니다. ". 스키마가 gc-ed이기 때문에 나중에 할 수 없습니다. 내가 원래 원했던 것은 ... RAII + Refcounting 유형을 제공하는 ref-counting의 일부 유형을 자동으로 인터리브하는 영리한 매크로 맥의 일종이었습니다. – anon
더 추가하려면 다음과 같은 상황을 고려하십시오. 우리는 모델을 생성하고 삭제 된 시점을 알 수는 없지만 많이 렌더링되었음을 알 수 있습니다. VBO를 제공합니다. 그것을 주변에 전달하십시오; ... 아무도 사용하지 않으면 VBO가 해제됩니다. 코드에서 "이제 모델을 무료로 사용할 수 있습니다."라는 단 한 곳도 없습니다. – anon