ワンショット・タイマがACE(C++):cancel_timerを呼び出さない== MLK?
schedule_timer(timer,0,ACE_Time_Value(delay),ACE_Time_Value::zero)
経由で予定されていた場合は、メモリリークを避けるために必要なcancel_timerのですか?
ワンショット・タイマがACE(C++):cancel_timerを呼び出さない== MLK?
schedule_timer(timer,0,ACE_Time_Value(delay),ACE_Time_Value::zero)
経由で予定されていた場合は、メモリリークを避けるために必要なcancel_timerのですか?
タイマーオブジェクトはACEによって解放されませんが、ACEがタイマーを維持するために必要なデータ構造は、タイマーの実行後に解放されます。これを検証するために
二つの方法:
下の小さなテストプログラム私は答えは「それが依存」だと思います。 ACEの相対的な古代版以外では、Reactor(またはTimer_Queue)がイベントハンドラの参照カウントを増加させ、イベントハンドラがReactor(またはTimer_Queue)から削除されたときに減少させることができます。 参照カウントオプションであり、有効にする必要があります。
さらに、私はこの資料を使用していません、ドキュメントを読んで、テストしてください!