From bef0a4c1e20fe660b7ad40bb0f47d7bd721c3b6f Mon Sep 17 00:00:00 2001 From: Randell Jesup Date: Thu, 18 Oct 2012 14:03:00 -0400 Subject: [PATCH] Bug 803093: Lock access to MediaEngineWebRTC singleton r=anant --- content/media/webrtc/MediaEngineWebRTC.cpp | 7 +++++++ content/media/webrtc/MediaEngineWebRTC.h | 10 ++++++++-- dom/media/MediaManager.cpp | 4 ++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/content/media/webrtc/MediaEngineWebRTC.cpp b/content/media/webrtc/MediaEngineWebRTC.cpp index 7b63b443f13d..fe7695b36284 100644 --- a/content/media/webrtc/MediaEngineWebRTC.cpp +++ b/content/media/webrtc/MediaEngineWebRTC.cpp @@ -29,6 +29,8 @@ MediaEngineWebRTC::EnumerateVideoDevices(nsTArray >*); private: + Mutex mMutex; + // protected with mMutex: + webrtc::VideoEngine* mVideoEngine; webrtc::VoiceEngine* mVoiceEngine; diff --git a/dom/media/MediaManager.cpp b/dom/media/MediaManager.cpp index b3eed3e6a513..7dd4a351241e 100644 --- a/dom/media/MediaManager.cpp +++ b/dom/media/MediaManager.cpp @@ -812,6 +812,7 @@ MediaManager::GetUserMedia(bool aPrivileged, nsPIDOMWindow* aWindow, if (!mMediaThread) { nsresult rv = NS_NewThread(getter_AddRefs(mMediaThread)); NS_ENSURE_SUCCESS(rv, rv); + LOG(("New Media thread for gum")); } mMediaThread->Dispatch(gUMRunnable, NS_DISPATCH_NORMAL); } else { @@ -952,8 +953,11 @@ MediaManager::Observe(nsISupports* aSubject, const char* aTopic, // Reuse the same thread to save memory. if (!mMediaThread) { + LOG(("New Media thread for gum on allow")); nsresult rv = NS_NewThread(getter_AddRefs(mMediaThread)); NS_ENSURE_SUCCESS(rv, rv); + } else { + LOG(("Reused Media thread for gum on allow")); } if (aSubject) {