瀏覽代碼

Merge pull request #1444 from paullouisageneau/fix-sctp-instances-lifecycle

Fix SctpTransport::Instances lifecycle
Paul-Louis Ageneau 1 月之前
父節點
當前提交
b073d55228
共有 2 個文件被更改,包括 7 次插入2 次删除
  1. 6 1
      src/impl/sctptransport.cpp
  2. 1 1
      src/impl/sctptransport.hpp

+ 6 - 1
src/impl/sctptransport.cpp

@@ -82,7 +82,7 @@ private:
 	std::shared_mutex mMutex;
 };
 
-std::unique_ptr<SctpTransport::InstancesSet> SctpTransport::Instances = std::make_unique<InstancesSet>();
+SctpTransport::InstancesSet* SctpTransport::Instances = nullptr;
 
 void SctpTransport::Init() {
 	usrsctp_init(0, SctpTransport::WriteCallback, SctpTransport::DebugCallback);
@@ -94,6 +94,8 @@ void SctpTransport::Init() {
 #ifdef SCTP_DEBUG
 	usrsctp_sysctl_set_sctp_debug_on(SCTP_DEBUG_ALL);
 #endif
+
+	Instances = new InstancesSet;
 }
 
 void SctpTransport::SetSettings(const SctpSettings &s) {
@@ -148,6 +150,9 @@ void SctpTransport::SetSettings(const SctpSettings &s) {
 void SctpTransport::Cleanup() {
 	while (usrsctp_finish())
 		std::this_thread::sleep_for(100ms);
+
+	delete Instances;
+	Instances = nullptr;
 }
 
 SctpTransport::SctpTransport(shared_ptr<Transport> lower, const Configuration &config, Ports ports,

+ 1 - 1
src/impl/sctptransport.hpp

@@ -127,7 +127,7 @@ private:
 	static void DebugCallback(const char *format, ...);
 
 	class InstancesSet;
-	static std::unique_ptr<InstancesSet> Instances;
+	static InstancesSet* Instances;
 };
 
 } // namespace rtc::impl