プロジェクト

全般

プロフィール

バグ #3569

src/lib/rtm/Manager.cpp でメモリリーク

jun0ほぼ8年前に追加. ほぼ8年前に更新.

ステータス:
却下
優先度:
通常
担当者:
-
対象バージョン:
-
開始日:
2016/06/07
期日:
進捗率:

0%

予定工数:

説明

Manager::Managerがcoil::SignalActionをnewしたまま、返って来たポインタをどこにも保存しないのでリークしています。register_action()を呼んでいるわけではないので、単にその行自体を削除するパッチを書いてみましたが、本来はactionが登録されるべきなのでしょうか?

leak.diff (569 Bytes) leak.diff jun0, 2016/06/07 19:45

履歴

#1 n-andoほぼ8年前に更新

  • ステータス新規 から 却下 に変更

Managerはシングルトンで、かつプロセスのライフサイクル中一度しかインスタンス化されない想定です。
Managerのprotectedなコンストラクタ内でnewされているSignalActionもManagerと寿命を共にするオブジェクトであり、このポインタを保存しておいても削除するタイミングが無く、メモリの破棄はOSに任せるしかないのでポインタをあえて保存していません。

逆に、このシグナルハンドラを登録しないと、Ctrl+Cで終了させたときにネームサービスにコンポーネントのごみが残ったり、終了処理が正しく呼び出されないのであまりうれしくないと思います。

他の形式にエクスポート: Atom PDF