操作
バグ #3569
完了src/lib/rtm/Manager.cpp でメモリリーク
ステータス:
却下
優先度:
通常
担当者:
-
対象バージョン:
-
開始日:
2016/06/07
期日:
進捗率:
0%
予定工数:
説明
Manager::Managerがcoil::SignalActionをnewしたまま、返って来たポインタをどこにも保存しないのでリークしています。register_action()を呼んでいるわけではないので、単にその行自体を削除するパッチを書いてみましたが、本来はactionが登録されるべきなのでしょうか?
ファイル
n-ando さんが8年以上前に更新
- ステータス を 新規 から 却下 に変更
Managerはシングルトンで、かつプロセスのライフサイクル中一度しかインスタンス化されない想定です。
Managerのprotectedなコンストラクタ内でnewされているSignalActionもManagerと寿命を共にするオブジェクトであり、このポインタを保存しておいても削除するタイミングが無く、メモリの破棄はOSに任せるしかないのでポインタをあえて保存していません。
逆に、このシグナルハンドラを登録しないと、Ctrl+Cで終了させたときにネームサービスにコンポーネントのごみが残ったり、終了処理が正しく呼び出されないのであまりうれしくないと思います。
操作