2010-11-23 10 views
1

可能性の重複:
posix timer_create() function causing memory leak on linuxPOSIX timer_create()問題

私は自分のアプリケーションでのタイマー機能のために、POSIX timer_create()機能を使用しています。タイムアウトシナリオでSIGEV_THREADオプションを使用しています。しかし、実行時にタイムアウトが発生したときにカーネルによって作成されたスレッドは、終了しません。スレッドの起動機能にも問題はありません。テスト目的のために、私はダミー関数にしました。このスレッドが終了していないので、約10MBのメモリリークが発生しています。デフォルトで作成されたスレッドのデタッチ状態はPTHREAD_CREATE_DETACHEDです。誰かがメモリリークを取り除くために何をすべきか教えてもらえますか?

+0

これらの重複する投稿を作成しないようにしてください。 –

+4

あなたが前回よりも優れた答えをしたい場合は、いくつかのコードを投稿してください。 – Duck

答えて

0

これは、タイマーを処理するためのスレッドを作成するlibcライブラリです。このスレッドは、timer_create()を使用するたびにスレッドの作成/破棄を避けるために、タイマーが起動した後で破棄されません。つまり、タイマースレッドが作成されると、それはプログラムが終了するまで実行されます。

ただし、タイマースレッド自体はメモリリークを引き起こしません。メモリリークは、おそらくあなたのコードによって引き起こされます。あなたのコードを投稿してください。