Index: webrtc/base/messagequeue.cc |
diff --git a/webrtc/base/messagequeue.cc b/webrtc/base/messagequeue.cc |
index efe618851a82086c5450dd3096684ee04477ee58..7622ef2d8efb7974282ddc9f5f049053d9dee9c0 100644 |
--- a/webrtc/base/messagequeue.cc |
+++ b/webrtc/base/messagequeue.cc |
@@ -146,8 +146,8 @@ void MessageQueueManager::ProcessAllMessageQueuesInternal() { |
{ |
DebugNonReentrantCritScope cs(&crit_, &locked_); |
for (MessageQueue* queue : message_queues_) { |
- if (!queue->IsProcessingMessages()) { |
- // If the queue is not processing messages, it can |
+ if (!queue->IsProcessingMessages() || queue->empty()) { |
Taylor Brandstetter
2017/04/28 02:59:34
Is the "|| queue->empty()" part still needed?
nisse-webrtc
2017/04/28 09:46:52
Unfortunately yes. Otherwise, rtc_unittests hangs
|
+ // If the queue is empty or not processing messages, it can |
// be ignored. If we tried to post a message to it, it would be dropped |
// or ignored. |
continue; |
@@ -216,30 +216,16 @@ void MessageQueue::DoDestroy() { |
MessageQueueManager::Remove(this); |
Clear(nullptr); |
- SharedScope ss(&ss_lock_); |
if (ss_) { |
ss_->SetMessageQueue(nullptr); |
} |
} |
SocketServer* MessageQueue::socketserver() { |
- SharedScope ss(&ss_lock_); |
return ss_; |
} |
-void MessageQueue::set_socketserver(SocketServer* ss) { |
- // Need to lock exclusively here to prevent simultaneous modifications from |
- // other threads. Can't be a shared lock to prevent races with other reading |
- // threads. |
- // Other places that only read "ss_" can use a shared lock as simultaneous |
- // read access is allowed. |
- ExclusiveScope es(&ss_lock_); |
- ss_ = ss ? ss : own_ss_.get(); |
- ss_->SetMessageQueue(this); |
-} |
- |
void MessageQueue::WakeUpSocketServer() { |
- SharedScope ss(&ss_lock_); |
ss_->WakeUp(); |
} |
@@ -357,7 +343,6 @@ bool MessageQueue::Get(Message *pmsg, int cmsWait, bool process_io) { |
{ |
// Wait and multiplex in the meantime |
- SharedScope ss(&ss_lock_); |
if (!ss_->Wait(static_cast<int>(cmsNext), process_io)) |
return false; |
} |