Browse Source

Added proper destructor to impl::Track

Paul-Louis Ageneau 3 years ago
parent
commit
b4201a3dbe
3 changed files with 16 additions and 2 deletions
  1. 7 1
      src/impl/datachannel.cpp
  2. 8 0
      src/impl/track.cpp
  3. 1 1
      src/impl/track.hpp

+ 7 - 1
src/impl/datachannel.cpp

@@ -85,9 +85,15 @@ DataChannel::DataChannel(weak_ptr<PeerConnection> pc, uint16_t stream, string la
       mReliability(std::make_shared<Reliability>(std::move(reliability))),
       mRecvQueue(RECV_QUEUE_LIMIT, message_size_func) {}
 
-DataChannel::~DataChannel() { close(); }
+DataChannel::~DataChannel() {
+	PLOG_VERBOSE << "Destroying DataChannel";
+
+	close();
+}
 
 void DataChannel::close() {
+	PLOG_VERBOSE << "Closing DataChannel";
+
 	shared_ptr<SctpTransport> transport;
 	{
 		std::shared_lock lock(mMutex);

+ 8 - 0
src/impl/track.cpp

@@ -32,6 +32,12 @@ Track::Track(weak_ptr<PeerConnection> pc, Description::Media description)
     : mPeerConnection(pc), mMediaDescription(std::move(description)),
       mRecvQueue(RECV_QUEUE_LIMIT, message_size_func) {}
 
+Track::~Track() {
+	PLOG_VERBOSE << "Destroying Track";
+
+	close();
+}
+
 string Track::mid() const {
 	std::shared_lock lock(mMutex);
 	return mMediaDescription.mid();
@@ -56,6 +62,8 @@ void Track::setDescription(Description::Media description) {
 }
 
 void Track::close() {
+	PLOG_VERBOSE << "Closing Track";
+
 	mIsClosed = true;
 
 	setMediaHandler(nullptr);

+ 1 - 1
src/impl/track.hpp

@@ -39,7 +39,7 @@ struct PeerConnection;
 class Track final : public std::enable_shared_from_this<Track>, public Channel {
 public:
 	Track(weak_ptr<PeerConnection> pc, Description::Media description);
-	~Track() = default;
+	~Track();
 
 	void close();
 	void incoming(message_ptr message);