diff --git a/webrtc/base/criticalsection.h b/webrtc/base/criticalsection.h index 3a1f6a4ec7..c78e818f93 100644 --- a/webrtc/base/criticalsection.h +++ b/webrtc/base/criticalsection.h @@ -44,7 +44,13 @@ #endif #ifdef _DEBUG +#if defined(WEBRTC_MAC) +// TODO(tommi): This is related to the comment above. It looks like the +// pthread_t member might be throwing off the mac debug bots (10.9). +#define CS_TRACK_OWNER 0 +#else #define CS_TRACK_OWNER 1 +#endif #endif // _DEBUG #if CS_TRACK_OWNER diff --git a/webrtc/base/messagequeue.cc b/webrtc/base/messagequeue.cc index 74b1024deb..37068980ba 100644 --- a/webrtc/base/messagequeue.cc +++ b/webrtc/base/messagequeue.cc @@ -59,7 +59,9 @@ void MessageQueueManager::AddInternal(MessageQueue *message_queue) { // MessageQueueManager methods should be non-reentrant, so we // ASSERT that is the case. If any of these ASSERT, please // contact bpm or jbeda. +#if CS_TRACK_OWNER // CurrentThreadIsOwner returns true by default. ASSERT(!crit_.CurrentThreadIsOwner()); +#endif CritScope cs(&crit_); message_queues_.push_back(message_queue); } @@ -71,7 +73,9 @@ void MessageQueueManager::Remove(MessageQueue *message_queue) { return Instance()->RemoveInternal(message_queue); } void MessageQueueManager::RemoveInternal(MessageQueue *message_queue) { +#if CS_TRACK_OWNER // CurrentThreadIsOwner returns true by default. ASSERT(!crit_.CurrentThreadIsOwner()); // See note above. +#endif // If this is the last MessageQueue, destroy the manager as well so that // we don't leak this object at program shutdown. As mentioned above, this is // not thread-safe, but this should only happen at program termination (when @@ -100,7 +104,9 @@ void MessageQueueManager::Clear(MessageHandler *handler) { return Instance()->ClearInternal(handler); } void MessageQueueManager::ClearInternal(MessageHandler *handler) { +#if CS_TRACK_OWNER // CurrentThreadIsOwner returns true by default. ASSERT(!crit_.CurrentThreadIsOwner()); // See note above. +#endif CritScope cs(&crit_); std::vector::iterator iter; for (iter = message_queues_.begin(); iter != message_queues_.end(); iter++)