From f1ea4170ea8d8e00c77ef6e1337a2ecd9911c8db Mon Sep 17 00:00:00 2001 From: Tomas Gunnarsson Date: Sun, 2 Jan 2022 15:15:08 +0000 Subject: [PATCH] Added annotation for BaseChannel members. The thread access problems have been resolved. Also removing unnecessary accessor for was_ever_writable_. Bug: webrtc:12230 Change-Id: I4b4d2304f0c8ff5eea31da3734b0d492b2a8516f Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/244080 Auto-Submit: Tomas Gunnarsson Reviewed-by: Niels Moller Commit-Queue: Niels Moller Cr-Commit-Position: refs/heads/main@{#35607} --- pc/channel.cc | 2 +- pc/channel.h | 15 ++++----------- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/pc/channel.cc b/pc/channel.cc index b85122d922..63fa72ce90 100644 --- a/pc/channel.cc +++ b/pc/channel.cc @@ -319,7 +319,7 @@ bool BaseChannel::IsReadyToSendMedia_w() const { return enabled_ && webrtc::RtpTransceiverDirectionHasRecv(remote_content_direction_) && webrtc::RtpTransceiverDirectionHasSend(local_content_direction_) && - was_ever_writable(); + was_ever_writable_; } bool BaseChannel::SendPacket(rtc::CopyOnWriteBuffer* packet, diff --git a/pc/channel.h b/pc/channel.h index 4628c86bd8..701ac965f4 100644 --- a/pc/channel.h +++ b/pc/channel.h @@ -192,10 +192,6 @@ class BaseChannel : public ChannelInterface, } protected: - bool was_ever_writable() const { - RTC_DCHECK_RUN_ON(worker_thread()); - return was_ever_writable_; - } void set_local_content_direction(webrtc::RtpTransceiverDirection direction) { RTC_DCHECK_RUN_ON(worker_thread()); local_content_direction_ = direction; @@ -358,13 +354,10 @@ class BaseChannel : public ChannelInterface, bool payload_type_demuxing_enabled_ RTC_GUARDED_BY(worker_thread()) = true; std::vector local_streams_ RTC_GUARDED_BY(worker_thread()); std::vector remote_streams_ RTC_GUARDED_BY(worker_thread()); - // TODO(bugs.webrtc.org/12230): local_content_direction and - // remote_content_direction are set on the worker thread, but accessed on the - // network thread. - webrtc::RtpTransceiverDirection local_content_direction_ = - webrtc::RtpTransceiverDirection::kInactive; - webrtc::RtpTransceiverDirection remote_content_direction_ = - webrtc::RtpTransceiverDirection::kInactive; + webrtc::RtpTransceiverDirection local_content_direction_ RTC_GUARDED_BY( + worker_thread()) = webrtc::RtpTransceiverDirection::kInactive; + webrtc::RtpTransceiverDirection remote_content_direction_ RTC_GUARDED_BY( + worker_thread()) = webrtc::RtpTransceiverDirection::kInactive; // Cached list of payload types, used if payload type demuxing is re-enabled. std::set payload_types_ RTC_GUARDED_BY(worker_thread());