Wenn ein One-Shot-Timer überACE (C++): Kein Aufruf von cancel_timer == MLK?
schedule_timer(timer,0,ACE_Time_Value(delay),ACE_Time_Value::zero)
geplant wurde cancel_timer erforderlich, um einen Speicherverlust zu vermeiden?
Wenn ein One-Shot-Timer überACE (C++): Kein Aufruf von cancel_timer == MLK?
schedule_timer(timer,0,ACE_Time_Value(delay),ACE_Time_Value::zero)
geplant wurde cancel_timer erforderlich, um einen Speicherverlust zu vermeiden?
Das Timer-Objekt wird nicht von ACE freigegeben, aber jede Datenstruktur, die ACE benötigt, um den Timer zu warten, wird freigegeben, nachdem der Timer ausgeführt wurde.
zwei Möglichkeiten, dies zu überprüfen:
Ich denke, die Antwort ist „es kommt“ . Mit etwas außer relativen alten Versionen von ACE, können Sie den Reactor (oder Timer_Queue) den Verweiszähler auf Ihrem Event-Handler erhöhen und dekrementieren, wenn der Event-Handler aus dem Reaktor (oder Timer_Queue.) Entfernt wird. Bitte beachten Sie diese Referenzzählung ist optional und muss aktiviert werden.
Darüber hinaus habe ich dieses Zeug nicht verwendet, lesen Sie die Dokumentation und testen Sie!