From 2e85b5fa51857dd8e43520b57eb41ec413aa725e Mon Sep 17 00:00:00 2001 From: Tomas Gunnarsson Date: Sat, 15 Jan 2022 14:04:27 +0100 Subject: [PATCH] Add a check for empty channels to ChannelManager dtor. This is a necessary precondition for upcoming changes that will remove calls to Invoke() that currently occur during construction/destruction of media channel objects. Subsequently fix RtpSenderReceiverTest to destroy channels that were created in the constructor, in the destructor. Bug: webrtc:11992 Change-Id: I526908d997d27495659805d84113c84c48568712 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/246680 Auto-Submit: Tomas Gunnarsson Reviewed-by: Harald Alvestrand Commit-Queue: Harald Alvestrand Cr-Commit-Position: refs/heads/main@{#35702} --- pc/channel_manager.cc | 2 ++ pc/rtp_sender_receiver_unittest.cc | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/pc/channel_manager.cc b/pc/channel_manager.cc index b58830b215..525371fddc 100644 --- a/pc/channel_manager.cc +++ b/pc/channel_manager.cc @@ -58,6 +58,8 @@ ChannelManager::ChannelManager( ChannelManager::~ChannelManager() { RTC_DCHECK_RUN_ON(worker_thread_); + RTC_DCHECK(voice_channels_.empty()); + RTC_DCHECK(video_channels_.empty()); } void ChannelManager::GetSupportedAudioSendCodecs( diff --git a/pc/rtp_sender_receiver_unittest.cc b/pc/rtp_sender_receiver_unittest.cc index 35a0050278..8043dd0d5c 100644 --- a/pc/rtp_sender_receiver_unittest.cc +++ b/pc/rtp_sender_receiver_unittest.cc @@ -169,6 +169,10 @@ class RtpSenderReceiverTest local_stream_ = nullptr; video_track_ = nullptr; audio_track_ = nullptr; + + channel_manager_->DestroyVoiceChannel(voice_channel_); + channel_manager_->DestroyVideoChannel(video_channel_); + worker_thread_->Invoke(RTC_FROM_HERE, [&]() { channel_manager_.reset(); }); }