Index: webrtc/base/thread.cc |
diff --git a/webrtc/base/thread.cc b/webrtc/base/thread.cc |
index 4197d28175a05037f5ad953aba64d6b72ae62bef..9a4e20a2b08e67ef1a5076cb24b16a05f5696128 100644 |
--- a/webrtc/base/thread.cc |
+++ b/webrtc/base/thread.cc |
@@ -139,7 +139,7 @@ Thread::ScopedDisallowBlockingCalls::~ScopedDisallowBlockingCalls() { |
} |
Thread::Thread(SocketServer* ss) |
- : MessageQueue(ss), |
+ : MessageQueue(ss, false), |
running_(true, false), |
#if defined(WEBRTC_WIN) |
thread_(NULL), |
@@ -148,11 +148,12 @@ Thread::Thread(SocketServer* ss) |
owned_(true), |
blocking_calls_allowed_(true) { |
SetName("Thread", this); // default name |
+ MessageQueueManager::Add(this); |
} |
Thread::~Thread() { |
Stop(); |
- Clear(NULL); |
+ DoDestroy(); |
} |
bool Thread::SleepMs(int milliseconds) { |
@@ -519,12 +520,18 @@ AutoThread::AutoThread(SocketServer* ss) : Thread(ss) { |
AutoThread::~AutoThread() { |
Stop(); |
+ DoDestroy(); |
if (ThreadManager::Instance()->CurrentThread() == this) { |
ThreadManager::Instance()->SetCurrentThread(NULL); |
} |
} |
#if defined(WEBRTC_WIN) |
+ComThread::~ComThread() { |
+ Stop(); |
+ DoDestroy(); |
+} |
+ |
void ComThread::Run() { |
HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED); |
ASSERT(SUCCEEDED(hr)); |