Index: webrtc/api/statscollector.cc |
diff --git a/webrtc/api/statscollector.cc b/webrtc/api/statscollector.cc |
index ca1548fa0d53531a6af4ea4c2a5b69d4f2a4b8f9..95d1b9933687fb4fc9f19750733a20a85dbf9069 100644 |
--- a/webrtc/api/statscollector.cc |
+++ b/webrtc/api/statscollector.cc |
@@ -358,17 +358,18 @@ StatsCollector::StatsCollector(PeerConnection* pc) |
} |
StatsCollector::~StatsCollector() { |
- RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); |
+ RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); |
} |
double StatsCollector::GetTimeNow() { |
+ RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); |
return rtc::Timing::WallTimeNow() * rtc::kNumMillisecsPerSec; |
} |
// Adds a MediaStream with tracks that can be used as a |selector| in a call |
// to GetStats. |
void StatsCollector::AddStream(MediaStreamInterface* stream) { |
- RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); |
+ RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); |
RTC_DCHECK(stream != NULL); |
CreateTrackReports<AudioTrackVector>(stream->GetAudioTracks(), |
@@ -379,7 +380,7 @@ void StatsCollector::AddStream(MediaStreamInterface* stream) { |
void StatsCollector::AddLocalAudioTrack(AudioTrackInterface* audio_track, |
uint32_t ssrc) { |
- RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); |
+ RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); |
RTC_DCHECK(audio_track != NULL); |
#if (!defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)) |
for (const auto& track : local_audio_tracks_) |
@@ -401,6 +402,7 @@ void StatsCollector::AddLocalAudioTrack(AudioTrackInterface* audio_track, |
void StatsCollector::RemoveLocalAudioTrack(AudioTrackInterface* audio_track, |
uint32_t ssrc) { |
+ RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); |
RTC_DCHECK(audio_track != NULL); |
local_audio_tracks_.erase(std::remove_if(local_audio_tracks_.begin(), |
local_audio_tracks_.end(), |
@@ -411,7 +413,7 @@ void StatsCollector::RemoveLocalAudioTrack(AudioTrackInterface* audio_track, |
void StatsCollector::GetStats(MediaStreamTrackInterface* track, |
StatsReports* reports) { |
- RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); |
+ RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); |
RTC_DCHECK(reports != NULL); |
RTC_DCHECK(reports->empty()); |
@@ -451,7 +453,7 @@ void StatsCollector::GetStats(MediaStreamTrackInterface* track, |
void |
StatsCollector::UpdateStats(PeerConnectionInterface::StatsOutputLevel level) { |
- RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); |
+ RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); |
double time_now = GetTimeNow(); |
// Calls to UpdateStats() that occur less than kMinGatherStatsPeriod number of |
// ms apart will be ignored. |
@@ -482,7 +484,7 @@ StatsReport* StatsCollector::PrepareReport( |
uint32_t ssrc, |
const StatsReport::Id& transport_id, |
StatsReport::Direction direction) { |
- RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); |
+ RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); |
StatsReport::Id id(StatsReport::NewIdWithDirection( |
local ? StatsReport::kStatsReportTypeSsrc |
: StatsReport::kStatsReportTypeRemoteSsrc, |
@@ -521,7 +523,7 @@ StatsReport* StatsCollector::PrepareReport( |
StatsReport* StatsCollector::AddOneCertificateReport( |
const rtc::SSLCertificate* cert, const StatsReport* issuer) { |
- RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); |
+ RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); |
// TODO(bemasc): Move this computation to a helper class that caches these |
// values to reduce CPU use in GetStats. This will require adding a fast |
@@ -564,7 +566,7 @@ StatsReport* StatsCollector::AddOneCertificateReport( |
StatsReport* StatsCollector::AddCertificateReports( |
const rtc::SSLCertificate* cert) { |
- RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); |
+ RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); |
// Produces a chain of StatsReports representing this certificate and the rest |
// of its chain, and adds those reports to |reports_|. The return value is |
// the id of the leaf report. The provided cert must be non-null, so at least |
@@ -592,6 +594,7 @@ StatsReport* StatsCollector::AddConnectionInfoReport( |
const std::string& content_name, int component, int connection_id, |
const StatsReport::Id& channel_report_id, |
const cricket::ConnectionInfo& info) { |
+ RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); |
StatsReport::Id id(StatsReport::NewCandidatePairId(content_name, component, |
connection_id)); |
StatsReport* report = reports_.ReplaceOrAddNew(id); |
@@ -639,6 +642,7 @@ StatsReport* StatsCollector::AddConnectionInfoReport( |
StatsReport* StatsCollector::AddCandidateReport( |
const cricket::Candidate& candidate, |
bool local) { |
+ RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); |
StatsReport::Id id(StatsReport::NewCandidateId(local, candidate.id())); |
StatsReport* report = reports_.Find(id); |
if (!report) { |
@@ -664,7 +668,7 @@ StatsReport* StatsCollector::AddCandidateReport( |
} |
void StatsCollector::ExtractSessionInfo() { |
- RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); |
+ RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); |
// Extract information from the base session. |
StatsReport::Id id(StatsReport::NewTypedId( |
@@ -757,7 +761,7 @@ void StatsCollector::ExtractSessionInfo() { |
} |
void StatsCollector::ExtractVoiceInfo() { |
- RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); |
+ RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); |
if (!pc_->session()->voice_channel()) { |
return; |
@@ -790,7 +794,7 @@ void StatsCollector::ExtractVoiceInfo() { |
void StatsCollector::ExtractVideoInfo( |
PeerConnectionInterface::StatsOutputLevel level) { |
- RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); |
+ RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); |
if (!pc_->session()->video_channel()) |
return; |
@@ -827,7 +831,7 @@ void StatsCollector::ExtractVideoInfo( |
} |
void StatsCollector::ExtractDataInfo() { |
- RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); |
+ RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); |
rtc::Thread::ScopedDisallowBlockingCalls no_blocking_calls; |
@@ -847,14 +851,14 @@ void StatsCollector::ExtractDataInfo() { |
StatsReport* StatsCollector::GetReport(const StatsReport::StatsType& type, |
const std::string& id, |
StatsReport::Direction direction) { |
- RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); |
+ RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); |
RTC_DCHECK(type == StatsReport::kStatsReportTypeSsrc || |
type == StatsReport::kStatsReportTypeRemoteSsrc); |
return reports_.Find(StatsReport::NewIdWithDirection(type, id, direction)); |
} |
void StatsCollector::UpdateStatsFromExistingLocalAudioTracks() { |
- RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); |
+ RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); |
// Loop through the existing local audio tracks. |
for (const auto& it : local_audio_tracks_) { |
AudioTrackInterface* track = it.first; |
@@ -882,7 +886,7 @@ void StatsCollector::UpdateStatsFromExistingLocalAudioTracks() { |
void StatsCollector::UpdateReportFromAudioTrack(AudioTrackInterface* track, |
StatsReport* report) { |
- RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); |
+ RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); |
RTC_DCHECK(track != NULL); |
// Don't overwrite report values if they're not available. |
@@ -908,7 +912,7 @@ void StatsCollector::UpdateReportFromAudioTrack(AudioTrackInterface* track, |
bool StatsCollector::GetTrackIdBySsrc(uint32_t ssrc, |
std::string* track_id, |
StatsReport::Direction direction) { |
- RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); |
+ RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); |
if (direction == StatsReport::kSend) { |
if (!pc_->session()->GetLocalTrackIdBySsrc(ssrc, track_id)) { |
LOG(LS_WARNING) << "The SSRC " << ssrc |
@@ -928,7 +932,7 @@ bool StatsCollector::GetTrackIdBySsrc(uint32_t ssrc, |
} |
void StatsCollector::UpdateTrackReports() { |
- RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); |
+ RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); |
rtc::Thread::ScopedDisallowBlockingCalls no_blocking_calls; |
@@ -939,6 +943,7 @@ void StatsCollector::UpdateTrackReports() { |
} |
void StatsCollector::ClearUpdateStatsCacheForTest() { |
+ RTC_DCHECK(signal_thread_checker_.CalledOnValidThread()); |
stats_gathering_started_ = 0; |
} |