Add thread safety annotations for some more PeerConnection members (part 4)

Plus all the annotations that were necessary to make things compile
again.

Bug: webrtc:9987
Change-Id: Ia421e4dc0e1bbc81c3976cc7530d44de934d33bb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128882
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27257}
This commit is contained in:
Karl Wiberg
2019-03-22 15:29:58 +01:00
committed by Commit Bot
parent c70999ed54
commit 85a4a93e77

View File

@ -246,6 +246,7 @@ class PeerConnection : public PeerConnectionInternal,
std::vector<rtc::scoped_refptr<DataChannel>> sctp_data_channels() std::vector<rtc::scoped_refptr<DataChannel>> sctp_data_channels()
const override { const override {
RTC_DCHECK_RUN_ON(signaling_thread());
return sctp_data_channels_; return sctp_data_channels_;
} }
@ -594,17 +595,18 @@ class PeerConnection : public PeerConnectionInternal,
absl::optional<size_t>* audio_index, absl::optional<size_t>* audio_index,
absl::optional<size_t>* video_index, absl::optional<size_t>* video_index,
absl::optional<size_t>* data_index, absl::optional<size_t>* data_index,
cricket::MediaSessionOptions* session_options); cricket::MediaSessionOptions* session_options)
RTC_RUN_ON(signaling_thread());
// Generates the active MediaDescriptionOptions for the local data channel // Generates the active MediaDescriptionOptions for the local data channel
// given the specified MID. // given the specified MID.
cricket::MediaDescriptionOptions GetMediaDescriptionOptionsForActiveData( cricket::MediaDescriptionOptions GetMediaDescriptionOptionsForActiveData(
const std::string& mid) const; const std::string& mid) const RTC_RUN_ON(signaling_thread());
// Generates the rejected MediaDescriptionOptions for the local data channel // Generates the rejected MediaDescriptionOptions for the local data channel
// given the specified MID. // given the specified MID.
cricket::MediaDescriptionOptions GetMediaDescriptionOptionsForRejectedData( cricket::MediaDescriptionOptions GetMediaDescriptionOptionsForRejectedData(
const std::string& mid) const; const std::string& mid) const RTC_RUN_ON(signaling_thread());
// Returns the MID for the data section associated with either the // Returns the MID for the data section associated with either the
// RtpDataChannel or SCTP data channel, if it has been set. If no data // RtpDataChannel or SCTP data channel, if it has been set. If no data
@ -672,12 +674,13 @@ class PeerConnection : public PeerConnectionInternal,
void OnLocalSenderRemoved(const RtpSenderInfo& sender_info, void OnLocalSenderRemoved(const RtpSenderInfo& sender_info,
cricket::MediaType media_type); cricket::MediaType media_type);
void UpdateLocalRtpDataChannels(const cricket::StreamParamsVec& streams); void UpdateLocalRtpDataChannels(const cricket::StreamParamsVec& streams)
RTC_RUN_ON(signaling_thread());
void UpdateRemoteRtpDataChannels(const cricket::StreamParamsVec& streams) void UpdateRemoteRtpDataChannels(const cricket::StreamParamsVec& streams)
RTC_RUN_ON(signaling_thread()); RTC_RUN_ON(signaling_thread());
void UpdateClosingRtpDataChannels( void UpdateClosingRtpDataChannels(
const std::vector<std::string>& active_channels, const std::vector<std::string>& active_channels,
bool is_local_update); bool is_local_update) RTC_RUN_ON(signaling_thread());
void CreateRemoteRtpDataChannel(const std::string& label, void CreateRemoteRtpDataChannel(const std::string& label,
uint32_t remote_ssrc) uint32_t remote_ssrc)
RTC_RUN_ON(signaling_thread()); RTC_RUN_ON(signaling_thread());
@ -689,12 +692,13 @@ class PeerConnection : public PeerConnectionInternal,
const InternalDataChannelInit* config) RTC_RUN_ON(signaling_thread()); const InternalDataChannelInit* config) RTC_RUN_ON(signaling_thread());
// Checks if any data channel has been added. // Checks if any data channel has been added.
bool HasDataChannels() const; bool HasDataChannels() const RTC_RUN_ON(signaling_thread());
void AllocateSctpSids(rtc::SSLRole role); void AllocateSctpSids(rtc::SSLRole role) RTC_RUN_ON(signaling_thread());
void OnSctpDataChannelClosed(DataChannel* channel); void OnSctpDataChannelClosed(DataChannel* channel)
RTC_RUN_ON(signaling_thread());
void OnDataChannelDestroyed(); void OnDataChannelDestroyed() RTC_RUN_ON(signaling_thread());
// Called when a valid data channel OPEN message is received. // Called when a valid data channel OPEN message is received.
void OnDataChannelOpenMessage(const std::string& label, void OnDataChannelOpenMessage(const std::string& label,
const InternalDataChannelInit& config) const InternalDataChannelInit& config)
@ -749,7 +753,8 @@ class PeerConnection : public PeerConnectionInternal,
// Returns the specified SCTP DataChannel in sctp_data_channels_, // Returns the specified SCTP DataChannel in sctp_data_channels_,
// or nullptr if not found. // or nullptr if not found.
DataChannel* FindDataChannelBySid(int sid) const; DataChannel* FindDataChannelBySid(int sid) const
RTC_RUN_ON(signaling_thread());
// Called when first configuring the port allocator. // Called when first configuring the port allocator.
struct InitializePortAllocatorResult { struct InitializePortAllocatorResult {
@ -869,7 +874,7 @@ class PeerConnection : public PeerConnectionInternal,
void EnableSending(); void EnableSending();
// Destroys all BaseChannels and destroys the SCTP data channel, if present. // Destroys all BaseChannels and destroys the SCTP data channel, if present.
void DestroyAllChannels(); void DestroyAllChannels() RTC_RUN_ON(signaling_thread());
// Returns the media index for a local ice candidate given the content name. // Returns the media index for a local ice candidate given the content name.
// Returns false if the local session description does not have a media // Returns false if the local session description does not have a media
@ -1010,7 +1015,7 @@ class PeerConnection : public PeerConnectionInternal,
transceiver); transceiver);
// Destroys the RTP data channel and/or the SCTP data channel and clears it. // Destroys the RTP data channel and/or the SCTP data channel and clears it.
void DestroyDataChannel(); void DestroyDataChannel() RTC_RUN_ON(signaling_thread());
// Destroys the given ChannelInterface. // Destroys the given ChannelInterface.
// The channel cannot be accessed after this method is called. // The channel cannot be accessed after this method is called.
@ -1134,13 +1139,16 @@ class PeerConnection : public PeerConnectionInternal,
std::vector<RtpSenderInfo> local_video_sender_infos_ std::vector<RtpSenderInfo> local_video_sender_infos_
RTC_GUARDED_BY(signaling_thread()); RTC_GUARDED_BY(signaling_thread());
SctpSidAllocator sid_allocator_; SctpSidAllocator sid_allocator_ RTC_GUARDED_BY(signaling_thread());
// label -> DataChannel // label -> DataChannel
std::map<std::string, rtc::scoped_refptr<DataChannel>> rtp_data_channels_; std::map<std::string, rtc::scoped_refptr<DataChannel>> rtp_data_channels_
std::vector<rtc::scoped_refptr<DataChannel>> sctp_data_channels_; RTC_GUARDED_BY(signaling_thread());
std::vector<rtc::scoped_refptr<DataChannel>> sctp_data_channels_to_free_; std::vector<rtc::scoped_refptr<DataChannel>> sctp_data_channels_
RTC_GUARDED_BY(signaling_thread());
std::vector<rtc::scoped_refptr<DataChannel>> sctp_data_channels_to_free_
RTC_GUARDED_BY(signaling_thread());
bool remote_peer_supports_msid_ = false; bool remote_peer_supports_msid_ RTC_GUARDED_BY(signaling_thread()) = false;
std::unique_ptr<Call> call_; std::unique_ptr<Call> call_;
std::unique_ptr<StatsCollector> stats_; // A pointer is passed to senders_ std::unique_ptr<StatsCollector> stats_; // A pointer is passed to senders_