From 75c3ec17636319b77be24459efa529d14e76d7f1 Mon Sep 17 00:00:00 2001 From: "pbos@webrtc.org" Date: Wed, 27 Aug 2014 18:16:13 +0000 Subject: [PATCH] Fix data races during VideoAdapterTest tear-down. Explicitly disconnect the VideoCapturer to avoid frames being delivered during listener destruction. This manifested only on DrMemory Full on Windows which I was able to repro locally. BUG=3671 R=henrike@webrtc.org Review URL: https://webrtc-codereview.appspot.com/15289004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6991 4adac7df-926f-26a2-2b94-8c16560cd09d --- talk/media/base/videoadapter_unittest.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/talk/media/base/videoadapter_unittest.cc b/talk/media/base/videoadapter_unittest.cc index cfcc6a1215..04bf3d1d5c 100755 --- a/talk/media/base/videoadapter_unittest.cc +++ b/talk/media/base/videoadapter_unittest.cc @@ -69,6 +69,12 @@ class VideoAdapterTest : public testing::Test { listener_.get(), &VideoCapturerListener::OnFrameCaptured); } + virtual void TearDown() { + // Explicitly disconnect the VideoCapturer before to avoid data races + // (frames delivered to VideoCapturerListener while it's being destructed). + capturer_->SignalFrameCaptured.disconnect_all(); + } + protected: class VideoCapturerListener: public sigslot::has_slots<> { public: