2012-02-01 135 views
1

我有一個非常簡單的(示例)C程序如下。我想確保我釋放任何必要的資源,以便valgrind不會抱怨。我需要釋放mutex1嗎?或者在程序結束之前做任何事情?或者是互斥量1不分配內存?需要釋放互斥鎖?

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 } 
+4

valgrind說了什麼? – 2012-02-01 02:05:28

回答

2

不,這樣很好。不需要在靜態分配的互斥體上使用pthread_mutex_destroy。

3

不,您不需要免費mutex1PTHREAD_MUTEX_INITIALIZER是一個宏,隱藏結構初始化。

0

你的代碼中的mutex1是一個全局變量而不是堆分配的變量。你不需要釋放它。操作系統將釋放您的應用在您終止應用時使用的所有資源。