동적할당한 pthread_mutex_t,pthread_cond_t변수의 사용에 대해서 질문
글쓴이: wsong / 작성시간: 목, 2009/01/29 - 11:50오전
스레드 관련 프로그램에서 메모리를 동적할당 해서 쓸때 pthread_mutex_t,pthread_cond_t로 할당한 변수에 대해서는 pthread_mutex_init(),pthread_cond_init()로 초기화 하고, 동적할당한 메모리를 free하기 전에 pthread_mutex_destroy(),pthread_cond_destroy()로 해제해야 된다고 알고 있는데요.
동적할당한 경우는 반드시 저 순서를 따라서 해야 되는건가요? 다른 문제없이 동작하고 있는 프로그램의 소스를 보면, pthread_mutex_init(),pthread_cond_init()으로 할당은 하고, pthread_mutex_destroy(),pthread_cond_destroy()로 해제는 전혀 하지 않고 있는데요.이런식으로 해도 처리에 문제가 없는건가요?
아니면 예외적인 경우가 있는건지 궁금합니다.
Forums:
프로그램이 그냥 종료하면 굳이 저렇게 안해줘도 되겠죠.
mutex나 conditional variable을 쓰는 애들이 없으니까 말이죠. 하지만 도중에 free하게 될 경우, 연관된 thread들이 오동작 할 여지가 있습니다.(이를테면 deadlock). 프로그램 중간에 해제해야 할 일이 있다면 써 주는 것이 좋겠죠.
댓글 달기