From 980e0c16b9117246f15da62300e966a276bf20b2 Mon Sep 17 00:00:00 2001 From: Markus Handell Date: Thu, 28 May 2020 08:39:31 +0200 Subject: [PATCH] VideoSendStreamTest: remove lock recursions. This change removes lock recursions and adds thread annotations. Bug: webrtc:11567 Change-Id: Id3f375ed925b0b8f3cad449d0971d9236088b1d5 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176225 Reviewed-by: Magnus Flodman Commit-Queue: Markus Handell Cr-Commit-Position: refs/heads/master@{#31382} --- video/video_send_stream_tests.cc | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/video/video_send_stream_tests.cc b/video/video_send_stream_tests.cc index 63acb80b8d..449e194ed2 100644 --- a/video/video_send_stream_tests.cc +++ b/video/video_send_stream_tests.cc @@ -2483,29 +2483,34 @@ TEST_F(VideoSendStreamTest, EncoderIsProperlyInitializedAndDestroyed) { released_(false), encoder_factory_(this) {} - bool IsReleased() { + bool IsReleased() RTC_LOCKS_EXCLUDED(crit_) { rtc::CritScope lock(&crit_); return released_; } - bool IsReadyForEncode() { + bool IsReadyForEncode() RTC_LOCKS_EXCLUDED(crit_) { rtc::CritScope lock(&crit_); - return initialized_ && callback_registered_; + return IsReadyForEncodeLocked(); } - size_t num_releases() { + size_t num_releases() RTC_LOCKS_EXCLUDED(crit_) { rtc::CritScope lock(&crit_); return num_releases_; } private: + bool IsReadyForEncodeLocked() RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_) { + return initialized_ && callback_registered_; + } + void SetFecControllerOverride( FecControllerOverride* fec_controller_override) override { // Ignored. } int32_t InitEncode(const VideoCodec* codecSettings, - const Settings& settings) override { + const Settings& settings) override + RTC_LOCKS_EXCLUDED(crit_) { rtc::CritScope lock(&crit_); EXPECT_FALSE(initialized_); initialized_ = true; @@ -2522,16 +2527,16 @@ TEST_F(VideoSendStreamTest, EncoderIsProperlyInitializedAndDestroyed) { } int32_t RegisterEncodeCompleteCallback( - EncodedImageCallback* callback) override { + EncodedImageCallback* callback) override RTC_LOCKS_EXCLUDED(crit_) { rtc::CritScope lock(&crit_); EXPECT_TRUE(initialized_); callback_registered_ = true; return 0; } - int32_t Release() override { + int32_t Release() override RTC_LOCKS_EXCLUDED(crit_) { rtc::CritScope lock(&crit_); - EXPECT_TRUE(IsReadyForEncode()); + EXPECT_TRUE(IsReadyForEncodeLocked()); EXPECT_FALSE(released_); initialized_ = false; callback_registered_ = false;