Fix CallPerfTests to call Call::GetStats() from the right thread.
Bug: webrtc:10847
Change-Id: Ic44d9b644aff981ec570c98c2486bb8be787ac68
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/148066
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28785}
diff --git a/call/call_perf_tests.cc b/call/call_perf_tests.cc
index 43af881..421444f 100644
--- a/call/call_perf_tests.cc
+++ b/call/call_perf_tests.cc
@@ -860,19 +860,22 @@
class MinVideoAndAudioBitrateTester : public test::EndToEndTest {
public:
- MinVideoAndAudioBitrateTester(int test_bitrate_from,
- int test_bitrate_to,
- int test_bitrate_step,
- int min_bwe,
- int start_bwe,
- int max_bwe)
+ MinVideoAndAudioBitrateTester(
+ int test_bitrate_from,
+ int test_bitrate_to,
+ int test_bitrate_step,
+ int min_bwe,
+ int start_bwe,
+ int max_bwe,
+ test::SingleThreadedTaskQueueForTesting* task_queue)
: EndToEndTest(),
test_bitrate_from_(test_bitrate_from),
test_bitrate_to_(test_bitrate_to),
test_bitrate_step_(test_bitrate_step),
min_bwe_(min_bwe),
start_bwe_(start_bwe),
- max_bwe_(max_bwe) {}
+ max_bwe_(max_bwe),
+ task_queue_(task_queue) {}
protected:
BuiltInNetworkBehaviorConfig GetFakeNetworkPipeConfig() {
@@ -922,15 +925,17 @@
send_simulated_network_->SetConfig(pipe_config);
receive_simulated_network_->SetConfig(pipe_config);
- rtc::ThreadManager::Instance()->CurrentThread()->SleepMs(
- quick_perf_test ? kShortDelayMs : kBitrateStabilizationMs);
+ rtc::Thread::SleepMs(quick_perf_test ? kShortDelayMs
+ : kBitrateStabilizationMs);
int64_t avg_rtt = 0;
for (int i = 0; i < kBitrateMeasurements; i++) {
- Call::Stats call_stats = sender_call_->GetStats();
+ Call::Stats call_stats;
+ task_queue_->SendTask(
+ [this, &call_stats]() { call_stats = sender_call_->GetStats(); });
avg_rtt += call_stats.rtt_ms;
- rtc::ThreadManager::Instance()->CurrentThread()->SleepMs(
- quick_perf_test ? kShortDelayMs : kBitrateMeasurementMs);
+ rtc::Thread::SleepMs(quick_perf_test ? kShortDelayMs
+ : kBitrateMeasurementMs);
}
avg_rtt = avg_rtt / kBitrateMeasurements;
if (avg_rtt > kMinGoodRttMs) {
@@ -976,8 +981,9 @@
SimulatedNetwork* send_simulated_network_;
SimulatedNetwork* receive_simulated_network_;
Call* sender_call_;
+ test::SingleThreadedTaskQueueForTesting* const task_queue_;
} test(test_bitrate_from, test_bitrate_to, test_bitrate_step, min_bwe,
- start_bwe, max_bwe);
+ start_bwe, max_bwe, &task_queue_);
RunBaseTest(&test);
}