Project

General

Profile

バグ #3569

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

Added by jun0 over 4 years ago. Updated over 4 years ago.

Status:
却下
Priority:
通常
Assignee:
-
Target version:
-
Start date:
06/07/2016
Due date:
% Done:

0%

Estimated time:

Description

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

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

History

#1 Updated by n-ando over 4 years ago

  • Status changed from 新規 to 却下

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

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

Also available in: Atom PDF