Remove potential deadlock in WebRtcVideoEngine2.
Fixes lock-order inversions between capturer's SignalVideoFrame and WebRtcVideoSendStream. Additionally also removes all deadlock suppressions for WebRtcVideoEngine2. R=stefan@webrtc.org TBR=kjellander@webrtc.org BUG=1788,2999 Review URL: https://webrtc-codereview.appspot.com/26729004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7386 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
a9e363e721
commit
963b979510
@ -1481,12 +1481,16 @@ void WebRtcVideoChannel2::WebRtcVideoSendStream::MuteStream(bool mute) {
|
||||
}
|
||||
|
||||
bool WebRtcVideoChannel2::WebRtcVideoSendStream::DisconnectCapturer() {
|
||||
cricket::VideoCapturer* capturer;
|
||||
{
|
||||
rtc::CritScope cs(&lock_);
|
||||
if (capturer_ == NULL) {
|
||||
return false;
|
||||
}
|
||||
capturer_->SignalVideoFrame.disconnect(this);
|
||||
capturer = capturer_;
|
||||
capturer_ = NULL;
|
||||
}
|
||||
capturer->SignalVideoFrame.disconnect(this);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -59,8 +59,6 @@ char kTSanDefaultSuppressions[] =
|
||||
|
||||
// Potential deadlocks detected after roll in r6516.
|
||||
// https://code.google.com/p/webrtc/issues/detail?id=3509
|
||||
"deadlock:cricket::WebRtcVideoChannel2::WebRtcVideoSendStream::InputFrame\n"
|
||||
"deadlock:cricket::WebRtcVideoChannel2::WebRtcVideoSendStream::SetCapturer\n"
|
||||
"deadlock:webrtc::ProcessThreadImpl::RegisterModule\n"
|
||||
"deadlock:webrtc::RTCPReceiver::SetSsrcs\n"
|
||||
"deadlock:webrtc::RTPSenderAudio::RegisterAudioPayload\n"
|
||||
|
Loading…
Reference in New Issue
Block a user