From 44156fa024cbf12f052a35571ac91bc9907be6c3 Mon Sep 17 00:00:00 2001 From: Tommi Date: Wed, 2 Feb 2022 17:30:59 +0100 Subject: [PATCH] Remove workaround in AutoSocketServerThread that isn't needed anymore. Cleanup steps for the Connection class have changed as of: https://webrtc-review.googlesource.com/c/src/+/249941 However, it turns out that the PortTest suite still needs it, so the workaround has migrated to there. Bug: none Change-Id: Ia68f47b6c65b3a8fd5e8c04d70a43d15ba1a6422 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/250223 Reviewed-by: Niels Moller Commit-Queue: Tomas Gunnarsson Cr-Commit-Position: refs/heads/main@{#35894} --- p2p/base/port_unittest.cc | 7 +++++++ rtc_base/thread.cc | 5 ----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/p2p/base/port_unittest.cc b/p2p/base/port_unittest.cc index b27a527477..6ab40a66ad 100644 --- a/p2p/base/port_unittest.cc +++ b/p2p/base/port_unittest.cc @@ -415,6 +415,13 @@ class PortTest : public ::testing::Test, public sigslot::has_slots<> { role_conflict_(false), ports_destroyed_(0) {} + ~PortTest() { + // Workaround for tests that trigger async destruction of objects that we + // need to give an opportunity here to run, before proceeding with other + // teardown. + rtc::Thread::Current()->ProcessMessages(0); + } + protected: std::string password() { return password_; } diff --git a/rtc_base/thread.cc b/rtc_base/thread.cc index 4e649f35c2..c1c2c1bb4b 100644 --- a/rtc_base/thread.cc +++ b/rtc_base/thread.cc @@ -1236,11 +1236,6 @@ AutoSocketServerThread::AutoSocketServerThread(SocketServer* ss) AutoSocketServerThread::~AutoSocketServerThread() { RTC_DCHECK(ThreadManager::Instance()->CurrentThread() == this); - // Some tests post destroy messages to this thread. To avoid memory - // leaks, we have to process those messages. In particular - // P2PTransportChannelPingTest, relying on the message posted in - // cricket::Connection::Destroy. - ProcessMessages(0); // Stop and destroy the thread before clearing it as the current thread. // Sometimes there are messages left in the Thread that will be // destroyed by DoDestroy, and sometimes the destructors of the message and/or