Revert "Remove workaround in AutoSocketServerThread that isn't needed anymore."

This reverts commit 44156fa024.

Reason for revert: Needed in order to revert https://webrtc-review.googlesource.com/c/src/+/249941, which introduced a crash

Original change's description:
> 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 <nisse@webrtc.org>
> Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#35894}

Bug: none
Change-Id: I13a4a79ebcb864054d14c1ba7726e18e044e3bd4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/252542
Auto-Submit: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36076}
This commit is contained in:
Taylor Brandstetter 2022-02-25 02:48:18 +00:00 committed by WebRTC LUCI CQ
parent a23acdde9d
commit e4d3952bf0
2 changed files with 5 additions and 7 deletions

View file

@ -415,13 +415,6 @@ 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_; }

View file

@ -1223,6 +1223,11 @@ 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