需要释放互斥量吗?

时间:2012-02-01 02:04:29

标签: c free mutex init

我有一个非常简单的(样本)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  }

3 个答案:

答案 0 :(得分:3)

不,您不需要免费mutex1PTHREAD_MUTEX_INITIALIZER隐藏结构初始化的宏。

答案 1 :(得分:2)

不,它很好。没有必要在静态分配的互斥锁上使用pthread_mutex_destroy。

答案 2 :(得分:0)

代码中的mutex1是全局变量而不是堆分配的变量。你不需要释放它。操作系统将释放您的应用在应用终止时使用的所有资源。