Index: webrtc/base/messagequeue.cc |
diff --git a/webrtc/base/messagequeue.cc b/webrtc/base/messagequeue.cc |
index 8dd84cb89c256d4b3fd99ab6ba1240ef3300954e..4a30ad17cc2fec1494a50967762118d26ade4912 100644 |
--- a/webrtc/base/messagequeue.cc |
+++ b/webrtc/base/messagequeue.cc |
@@ -146,9 +146,10 @@ void MessageQueueManager::ProcessAllMessageQueuesInternal() { |
{ |
DebugNonReentrantCritScope cs(&crit_, &locked_); |
for (MessageQueue* queue : message_queues_) { |
- if (queue->IsQuitting()) { |
- // If the queue is quitting, it's done processing messages so it can |
- // be ignored. If we tried to post a message to it, it would be dropped. |
+ if (!queue->IsProcessingMessages()) { |
+ // If the queue is not processing messages, it can |
+ // be ignored. If we tried to post a message to it, it would be dropped |
+ // or ignored. |
continue; |
} |
queue->PostDelayed(RTC_FROM_HERE, 0, nullptr, MQID_DISPOSE, |
@@ -251,6 +252,10 @@ bool MessageQueue::IsQuitting() { |
return AtomicOps::AcquireLoad(&stop_) != 0; |
} |
+bool MessageQueue::IsProcessingMessages() { |
+ return !IsQuitting(); |
+} |
+ |
void MessageQueue::Restart() { |
AtomicOps::ReleaseStore(&stop_, 0); |
} |