プロが教えるわが家の防犯対策術!

御世話になります。
別の質問
https://okauth.questionbox.jp.msn.com/qa7662007. …
で、トラブってるプログラムがあります。(C++)
(ハンドル数が増加する)

そこで、Process Explorer の Handle view でみたところ、種類が"Event"となっているハンドルが増えている(リーク?)しているようです。(減っていかない)
言葉を素直に受け取ると、「イベントハンドルがリークしている」と言う解釈で良いのでしょうか?

であるとすると、「イベントハンドルがリーク」する状況とはどういった状況なのでしょうか?
少なくとも、該当ソースの中にCreateEvent等によるイベントの作成は行っていないのですが・・・

どなたか何か思い当たる事があればご教授頂けると幸いです。
以上、よろしくお願いいたします。

A 回答 (1件)

ハンドルが関与するオブジェクトは何か使用されていないですか。


event, mutex, thread, process, semaphore など。
使用していれば、確実に CloseHandle() がコールされているかを調べてはどうでしょう。
ソースを見てわからなければ、ログを埋め込めばわかると思います。
    • good
    • 0
この回答へのお礼

gentoo314 さん、回答有難う御座います。
また、御礼が遅くなってすみません。

ハンドルが関与するオブジェクトは色々使用しているみたいです。
ただ、最初に必要なオブジェクトを取得して、それを使いまわすので、CloseHandle() 等が走るのはプログラムの終了時になります。

ログ出力を増やして、暫く経過を見てみます。

お礼日時:2012/08/30 13:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!