diff --git a/trunk/src/app/srs_app_server.cpp b/trunk/src/app/srs_app_server.cpp index b586bf551..5d03ed506 100644 --- a/trunk/src/app/srs_app_server.cpp +++ b/trunk/src/app/srs_app_server.cpp @@ -310,6 +310,11 @@ SrsServer::SrsServer() } SrsServer::~SrsServer() +{ + destroy(); +} + +void SrsServer::destroy() { _srs_config->unsubscribe(this); @@ -538,6 +543,8 @@ int SrsServer::cycle() #ifdef SRS_AUTO_INGEST ingester->stop(); #endif + + destroy(); return ret; } diff --git a/trunk/src/app/srs_app_server.hpp b/trunk/src/app/srs_app_server.hpp index 7cdca2bd5..5c8d7005a 100644 --- a/trunk/src/app/srs_app_server.hpp +++ b/trunk/src/app/srs_app_server.hpp @@ -128,6 +128,7 @@ private: public: SrsServer(); virtual ~SrsServer(); + virtual void destroy(); public: virtual int initialize(); virtual int initialize_signal();