プロジェクト

全般

プロフィール

バグ #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

n-ando さんが8年以上前に更新

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

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

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

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