From b46df3da44c42f6e5055c69a8247a344887108ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20Spr=C3=A5ng?= Date: Sun, 10 May 2020 14:29:03 +0200 Subject: [PATCH] Reland "Removes lock release in PacedSender callback." MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is a reland of 6b9c60b06d04bc519195fca1f621b10accfeb46b Original change's description: > Removes lock release in PacedSender callback. > > The PacedSender currently has logic to temporarily release its internal > lock while sending or asking for padding. > This creates some tricky situations in the pacing controller where we > need to consider if some thread can enter while we the process thread is > actually processing, just temporarily busy sending. > > Since the pacing call stack is no longer cyclic, we can actually remove > this lock-release now. > > Bug: webrtc:10809 > Change-Id: Ic59c605252bed1f96a03406c908a30cd1012f995 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173592 > Reviewed-by: Sebastian Jansson > Commit-Queue: Erik Språng > Cr-Commit-Position: refs/heads/master@{#31206} Bug: webrtc:10809 Change-Id: Id39fc49b0a038e7ae3a0d9818fb0806c33ae0ae0 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175656 Reviewed-by: Sebastian Jansson Commit-Queue: Erik Språng Cr-Commit-Position: refs/heads/master@{#31332} --- modules/pacing/paced_sender.cc | 8 +------- test/direct_transport.cc | 1 - 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/modules/pacing/paced_sender.cc b/modules/pacing/paced_sender.cc index cd298f9b0b..1d02fe95e4 100644 --- a/modules/pacing/paced_sender.cc +++ b/modules/pacing/paced_sender.cc @@ -196,17 +196,11 @@ void PacedSender::SetQueueTimeLimit(TimeDelta limit) { void PacedSender::SendRtpPacket(std::unique_ptr packet, const PacedPacketInfo& cluster_info) { - critsect_.Leave(); packet_router_->SendPacket(std::move(packet), cluster_info); - critsect_.Enter(); } std::vector> PacedSender::GeneratePadding( DataSize size) { - std::vector> padding_packets; - critsect_.Leave(); - padding_packets = packet_router_->GeneratePadding(size.bytes()); - critsect_.Enter(); - return padding_packets; + return packet_router_->GeneratePadding(size.bytes()); } } // namespace webrtc diff --git a/test/direct_transport.cc b/test/direct_transport.cc index 818480b18b..f4ae047870 100644 --- a/test/direct_transport.cc +++ b/test/direct_transport.cc @@ -55,7 +55,6 @@ DirectTransport::~DirectTransport() { } void DirectTransport::SetReceiver(PacketReceiver* receiver) { - rtc::CritScope cs(&process_lock_); fake_network_->SetReceiver(receiver); }