我有一个非常简单的(样本)C程序如下。我想确保释放所需的任何资源,以便valgrind不会抱怨。我需要释放mutex1吗?或者在程序终止之前做任何事情?或者是静音x1没有分配内存?
02 pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER;
03 int counter=0;
04
05 /* Function C */
06 void functionC()
07 {
08 pthread_mutex_lock( &mutex1 );
09 counter++
10 pthread_mutex_unlock( &mutex1 );
11 }
答案 0 :(得分:3)
不,您不需要免费mutex1
。 PTHREAD_MUTEX_INITIALIZER
是隐藏结构初始化的宏。
答案 1 :(得分:2)
不,它很好。没有必要在静态分配的互斥锁上使用pthread_mutex_destroy。
答案 2 :(得分:0)
代码中的mutex1是全局变量而不是堆分配的变量。你不需要释放它。操作系统将释放您的应用在应用终止时使用的所有资源。