class AAA
{
...
~AAA()
{
pthread_mutex_lock( &m_mutex );
pthread_mutex_destroy( &m_mutex );
}
}
Run Code Online (Sandbox Code Playgroud)
问题>我在项目的某个地方看到了这段代码.这样做是好的做法吗?或者在销毁互斥锁之前锁定互斥锁是不确定的行为?
cam*_*ccc 35
它让我感到非常糟糕.
来自http://pubs.opengroup.org/onlinepubs/009695399/functions/pthread_mutex_destroy.html
销毁已解锁的初始化互斥锁应该是安全的.试图销毁锁定的互斥锁会导致未定义的行为.
所以这段代码保证了未定义的行为,需要修复.