fix #598 don't corrupt the heap when a TCP connection drops

This commit is contained in:
Kevin Hester
2020-12-27 16:58:32 +08:00
parent c06b7b2b48
commit c972197643
4 changed files with 38 additions and 14 deletions

View File

@@ -16,6 +16,10 @@ template <class T> class Observer
public:
virtual ~Observer();
/// Stop watching our current obserable
void unobserve();
/// Start watching a specified observable
void observe(Observable<T> *o);
private:
@@ -82,6 +86,11 @@ template <class T> class Observable
};
template <class T> Observer<T>::~Observer()
{
unobserve();
}
template <class T> void Observer<T>::unobserve()
{
if (observed)
observed->removeObserver(this);