In audio ChannelSend move task queue as last class member
To mitigate race between ~ChannelSend and task created in ProcessAndEncodeAudio.
as described in the comment next to the task queue member.
Bug: b/228933184
Change-Id: Ia0efd050c76a4539dc2525ef8efc065fab96861c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/258983
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36553}
diff --git a/audio/channel_send.cc b/audio/channel_send.cc
index 3f2f13c..6deb4f1 100644
--- a/audio/channel_send.cc
+++ b/audio/channel_send.cc
@@ -237,15 +237,15 @@
   rtc::scoped_refptr<ChannelSendFrameTransformerDelegate>
       frame_transformer_delegate_ RTC_GUARDED_BY(encoder_queue_);
 
-  // Defined last to ensure that there are no running tasks when the other
-  // members are destroyed.
-  rtc::TaskQueue encoder_queue_;
-
   const bool fixing_timestamp_stall_;
 
   mutable Mutex rtcp_counter_mutex_;
   RtcpPacketTypeCounter rtcp_packet_type_counter_
       RTC_GUARDED_BY(rtcp_counter_mutex_);
+
+  // Defined last to ensure that there are no running tasks when the other
+  // members are destroyed.
+  rtc::TaskQueue encoder_queue_;
 };
 
 const int kTelephoneEventAttenuationdB = 10;
@@ -474,11 +474,11 @@
           new RateLimiter(clock, kMaxRetransmissionWindowMs)),
       frame_encryptor_(frame_encryptor),
       crypto_options_(crypto_options),
+      fixing_timestamp_stall_(
+          field_trials.IsDisabled("WebRTC-Audio-FixTimestampStall")),
       encoder_queue_(task_queue_factory->CreateTaskQueue(
           "AudioEncoder",
-          TaskQueueFactory::Priority::NORMAL)),
-      fixing_timestamp_stall_(
-          field_trials.IsDisabled("WebRTC-Audio-FixTimestampStall")) {
+          TaskQueueFactory::Priority::NORMAL)) {
   audio_coding_.reset(AudioCodingModule::Create(AudioCodingModule::Config()));
 
   RtpRtcpInterface::Configuration configuration;