Move TaskQueuePacedSender::EnqueuePackets tracing onto the task queue.

This should avoid any potential race in static initialization for the
tracing logic.

Bug: webrtc:12715
Change-Id: Ic91d8e5fbd9b45a91e7e7a9e76226fc558e00c4b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/270381
Auto-Submit: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37662}
This commit is contained in:
Erik Språng 2022-08-02 11:37:35 +02:00 committed by WebRTC LUCI CQ
parent 185f10c082
commit 6397fb4f6c

View File

@ -136,19 +136,16 @@ void TaskQueuePacedSender::SetPacingRates(DataRate pacing_rate,
void TaskQueuePacedSender::EnqueuePackets(
std::vector<std::unique_ptr<RtpPacketToSend>> packets) {
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("webrtc"),
"TaskQueuePacedSender::EnqueuePackets");
for (auto& packet : packets) {
RTC_UNUSED(packet);
TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("webrtc"),
"TaskQueuePacedSender::EnqueuePackets::Loop",
"sequence_number", packet->SequenceNumber(), "rtp_timestamp",
packet->Timestamp());
}
task_queue_.PostTask([this, packets_ = std::move(packets)]() mutable {
task_queue_.PostTask([this, packets = std::move(packets)]() mutable {
RTC_DCHECK_RUN_ON(&task_queue_);
for (auto& packet : packets_) {
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("webrtc"),
"TaskQueuePacedSender::EnqueuePackets");
for (auto& packet : packets) {
TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("webrtc"),
"TaskQueuePacedSender::EnqueuePackets::Loop",
"sequence_number", packet->SequenceNumber(), "rtp_timestamp",
packet->Timestamp());
size_t packet_size = packet->payload_size() + packet->padding_size();
if (include_overhead_) {
packet_size += packet->headers_size();