Use real rather than simulated task queues in rtp replayer fuzzers Simulated task queues do not cooperate with Event class implemented by chromium and thus lead to deadlock when Event is used for a blocking call on the simulated task queue. This is partial revert of https://webrtc-review.googlesource.com/c/src/+/470500 Bug: chromium:510952673 Change-Id: Id636531090850442cbc13410b969b6960fce8e9b Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/471000 Auto-Submit: Danil Chapovalov <danilchap@webrtc.org> Reviewed-by: Philip Eliasson <philipel@webrtc.org> Commit-Queue: Philip Eliasson <philipel@webrtc.org> Cr-Commit-Position: refs/heads/main@{#47701}
diff --git a/test/fuzzers/utils/rtp_replayer.cc b/test/fuzzers/utils/rtp_replayer.cc index 9509c7f..523ad29 100644 --- a/test/fuzzers/utils/rtp_replayer.cc +++ b/test/fuzzers/utils/rtp_replayer.cc
@@ -84,7 +84,12 @@ } // Setup the video streams based on the configuration. - Environment env = CreateTestEnvironment({.time = &time_controller}); + // Destroying video receive streams does a blocking call using Event class. + // TaskQueue implementations that `time_controller` creates can cooperate + // with Event class implemented in WebRTC, but not with Event class overridden + // by chromium. To avoid blocking when running in chromium, real (default) + // task queues are used, while `time_controller` is used only for the Clock. + Environment env = CreateTestEnvironment({.time = time_controller.GetClock()}); CallConfig call_config(env); std::unique_ptr<Call> call = Call::Create(std::move(call_config)); SetupVideoStreams(&receive_stream_configs, stream_state.get(), call.get());