diff --git a/rtc_base/thread.h b/rtc_base/thread.h index 34848308c4..52df554f24 100644 --- a/rtc_base/thread.h +++ b/rtc_base/thread.h @@ -29,7 +29,6 @@ #endif #include "absl/base/attributes.h" #include "absl/functional/any_invocable.h" -#include "absl/memory/memory.h" #include "api/function_view.h" #include "api/task_queue/task_queue_base.h" #include "api/units/time_delta.h" @@ -298,14 +297,6 @@ class RTC_LOCKABLE RTC_EXPORT Thread : public webrtc::TaskQueueBase { return messages_.size() + delayed_messages_.size(); } - // Internally posts a message which causes the doomed object to be deleted - // TODO(bugs.webrtc.org/8324): Delete when unused by dependencies. - template - void Dispose(T* doomed) { - RTC_DCHECK(doomed); - PostTask([dommed = absl::WrapUnique(doomed)] {}); - } - bool IsCurrent() const; // Sleeps the calling thread for the specified number of milliseconds, during @@ -509,8 +500,6 @@ class RTC_LOCKABLE RTC_EXPORT Thread : public webrtc::TaskQueueBase { friend class ScopedDisallowBlockingCalls; - RecursiveCriticalSection* CritForTest() { return &crit_; } - private: static const int kSlowDispatchLoggingThreshold = 50; // 50 ms diff --git a/rtc_base/thread_message.h b/rtc_base/thread_message.h index cf38338f43..dbde40b0f0 100644 --- a/rtc_base/thread_message.h +++ b/rtc_base/thread_message.h @@ -89,8 +89,6 @@ class DisposeData : public MessageData { }; const uint32_t MQID_ANY = static_cast(-1); -// TODO(bugs.webrtc.org/8324): Delete when unused by dependencies. -const uint32_t MQID_DISPOSE = static_cast(-2); // No destructor diff --git a/rtc_base/thread_unittest.cc b/rtc_base/thread_unittest.cc index c88233998b..a800671a0b 100644 --- a/rtc_base/thread_unittest.cc +++ b/rtc_base/thread_unittest.cc @@ -555,42 +555,6 @@ TEST(ThreadTest, ThreeThreadsInvoke) { EXPECT_TRUE_WAIT(thread_a_called.Get(), 2000); } -class ThreadQueueTest : public ::testing::Test, public Thread { - public: - ThreadQueueTest() : Thread(CreateDefaultSocketServer(), true) { - RTC_DCHECK(Thread::Current() == nullptr); - ThreadManager::Instance()->SetCurrentThread(this); - } - ~ThreadQueueTest() { ThreadManager::Instance()->SetCurrentThread(nullptr); } - bool IsLocked_Worker() { - if (!CritForTest()->TryEnter()) { - return true; - } - CritForTest()->Leave(); - return false; - } - bool IsLocked() { - // We have to do this on a worker thread, or else the TryEnter will - // succeed, since our critical sections are reentrant. - std::unique_ptr worker(Thread::CreateWithSocketServer()); - worker->Start(); - return worker->Invoke(RTC_FROM_HERE, - [this] { return IsLocked_Worker(); }); - } -}; - -struct DeletedLockChecker { - DeletedLockChecker(ThreadQueueTest* test, bool* was_locked, bool* deleted) - : test(test), was_locked(was_locked), deleted(deleted) {} - ~DeletedLockChecker() { - *deleted = true; - *was_locked = test->IsLocked(); - } - ThreadQueueTest* test; - bool* was_locked; - bool* deleted; -}; - static void DelayedPostsWithIdenticalTimesAreProcessedInFifoOrder( FakeClock& clock, Thread& q) { @@ -614,7 +578,7 @@ static void DelayedPostsWithIdenticalTimesAreProcessedInFifoOrder( EXPECT_THAT(run_order, ElementsAre(0, 1, 2, 3, 4)); } -TEST_F(ThreadQueueTest, DelayedPostsWithIdenticalTimesAreProcessedInFifoOrder) { +TEST(ThreadTest, DelayedPostsWithIdenticalTimesAreProcessedInFifoOrder) { ScopedBaseFakeClock clock; Thread q(CreateDefaultSocketServer(), true); q.Start(); @@ -626,39 +590,6 @@ TEST_F(ThreadQueueTest, DelayedPostsWithIdenticalTimesAreProcessedInFifoOrder) { DelayedPostsWithIdenticalTimesAreProcessedInFifoOrder(clock, q_nullss); } -TEST_F(ThreadQueueTest, DisposeNotLocked) { - bool was_locked = true; - bool deleted = false; - DeletedLockChecker* d = new DeletedLockChecker(this, &was_locked, &deleted); - Dispose(d); - Message msg; - ProcessMessages(0); - EXPECT_TRUE(deleted); - EXPECT_FALSE(was_locked); -} - -class DeletedMessageHandler : public MessageHandlerAutoCleanup { - public: - explicit DeletedMessageHandler(bool* deleted) : deleted_(deleted) {} - ~DeletedMessageHandler() override { *deleted_ = true; } - void OnMessage(Message* msg) override {} - - private: - bool* deleted_; -}; - -TEST_F(ThreadQueueTest, DisposeHandlerWithPostedMessagePending) { - bool deleted = false; - DeletedMessageHandler* handler = new DeletedMessageHandler(&deleted); - // First, post a dispose. - Dispose(handler); - // Now, post a message, which should *not* be returned by Get(). - Post(RTC_FROM_HERE, handler, 1); - Message msg; - ProcessMessages(0); - EXPECT_TRUE(deleted); -} - // Ensure that ProcessAllMessageQueues does its essential function; process // all messages (both delayed and non delayed) up until the current time, on // all registered message queues.