1.16.6 잠금된 뮤텍스나 임계 영역 삭제
멀티스레드 프로그래밍 중에 종종 범하는 실수 중 하나가 바로 잠금된 뮤텍스나 임계 영역을 삭제하는 것입니다. 다음 예시 코드처럼 말이죠.
class A { mutex mutex; int a; }; void func() { A* a = new A(); lock(a-> ); delete a; }
이 문제는 상대적으로 쉽게 감지할 수 있습니다. 뮤텍스나 임계 영역의 파괴자 함수 안에 “이미 잠금하고 있으면 오류를 내라.”라는 기능을 추가하면 됩니다.