C++ 코루틴이 final_suspend에 도달했습니다. 핸들과 프레임을 누가 언제 destroy해야 하나요?
꼬리 질문을 독립 문항으로 확장했습니다. 원래 문항에서 맥락 보기 →
잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?
답변과 점검 포인트 펼치기답변 접기
01
구두 답변
정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.
final_suspend에서 정지한 프레임은 누군가 destroy할 책임을 가져야 하며 완료됐다는 논리 상태와 메모리 해제를 구분합니다. 반환 타입·awaiter·scheduler 중 소유자를 명시하고 중복 destroy를 막습니다.
suspend_never 등 최종 정지 선택에 따라 자동 파괴·핸들 유효성이 달라질 수 있어 핸들을 계속 유효하다고 가정하지 않습니다. 외부 I/O가 프레임을 참조하면 그 참조 종료 전에 파괴할 수 없습니다. 취소·완료·continuation 재개와 예외를 상태 머신으로 시험합니다.
02
득점 포인트
이해가 드러나는 지점을 확인해 보세요.
- final_suspend에서 정지한 프레임은 누군가 destroy할 책임을 가져야 하며 완료됐다는 논리 상태와 메모리 해제를 구분합니다. 반환 타입·awaiter·scheduler 중 소유자를 명시하고 중복 destroy를 막습니다.
- 취소·완료·continuation 재개와 예외를 상태 머신으로 시험합니다.
03
감점 포인트
놓치기 쉬운 조건과 오해를 짚어 보세요.
- 다음 핵심 구분을 반대로 설명하거나 성립 조건을 생략한다: final_suspend에서 정지한 프레임은 누군가 destroy할 책임을 가져야 하며 완료됐다는 논리 상태와 메모리 해제를 구분합니다.
04
더 파고들 거리
하나 더 질문하며 이해의 범위를 넓혀 보세요.
득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.
원리부터 공부하고 싶다면
답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.