C++ 뮤텍스 이중 lock 호출 문제 해결방안
[개요] C++로 작성된 회사 프로젝트에서 Onvif를 연동한 소스코드가 있는데, profileMutex, streamMutex 등의 뮤텍스를 사용하여 PTZ와 Onvif SDK를 사용하였다. 위의 각 PTZ 함수들이 모두 profileMutex를 잠근 후 사용하고 있는데, 문제는 뮤텍스를 사용하는 함수에서 또 뮤텍스를 사용하는 다른 함수를 호출하는 경우가 존재한다. 위 함수는 SetPreset() 함수인데, 처음에 profileMutex를 잠근 후에 아래에서 RemovePreset()을 호출하고, 다음에는 GetPresets()를 호출하고 있다. 이 코드는 그나마 리팩토링이 되어서 이중락이 발생하지 않도록 수정되었으나, 다른 함수들에서도 이런 경우가 발생할 여지가 높아보이도록 코드가 작성되었다. [개선..