2012-02-01 12 views
1

私は非常に単純な(サンプル)Cプログラムを次のように持っています。私はvalgrindが不平を言うことがないように必要なリソースをリリースするようにしたい。 mutex1を解放する必要がありますか?あるいは、プログラムが終了する前に何かする?または、mutex1がメモリを割り当てていないのですか?はミューテックスを解放する必要がありますか?

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は何を言ったのですか? –

答えて

2

いいえ、それはそのままです。静的に割り当てられたmutexに対してpthread_mutex_destroyを使う必要はありません。

3

いいえ、あなたはmutex1を解放する必要はありません。 PTHREAD_MUTEX_INITIALIZERは、が隠蔽されたマクロであり、構造体の初期化です。

0

コード内のmutex1は、ヒープ割り当て変数ではなくグローバル変数です。あなたはそれを解放する必要はありません。 OSは、アプリケーション終了時にアプリケーションが使用するすべてのリソースを解放します。

関連する問題