如何正确删除互斥锁?

Jam*_*sev 3 c++ posix mutex pthreads

我说,在我的一个析构函数中使用C++

mutex = NULL;
Run Code Online (Sandbox Code Playgroud)

但是这会No viable overloaded '='在我的Xcode 中导致错误" ".

之前在构造函数中初始化了相同的互斥锁

mutex = PTHREAD_MUTEX_INITIALIZER;
Run Code Online (Sandbox Code Playgroud)

请指教,我如何正确处理这个作为C++析构函数的一部分

bac*_*hus 5

您可以使用pthread_mutex_destroy()来销毁互斥对象.

根据POSIX规范:

pthread_mutex_destroy()函数将销毁互斥锁​​引用的互斥锁对象; 实际上,互斥对象变得未初始化.实现可能会导致pthread_mutex_destroy()将互斥引用的对象设置为无效值.可以使用pthread_mutex_init()重新初始化已销毁的互斥锁对象; 在销毁之后引用对象的结果是未定义的.