From 4b5792cc4a19502e46e46a257945c27bf2205055 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 "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 b46df3da44c42f6e5055c69a8247a344887108ea Test case for issue that caused revert added: https://webrtc-review.googlesource.com/c/src/+/178203 Fix for issue that caused revert: https://webrtc-review.googlesource.com/c/src/+/178207 Original change's description: > Reland "Removes lock release in PacedSender callback." > > 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} Bug: webrtc:10809 Change-Id: I1dba507220316008c0f3b278df4b732011f257eb Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178384 Reviewed-by: Sebastian Jansson Commit-Queue: Erik Språng Cr-Commit-Position: refs/heads/master@{#31588} --- 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 e38863031b..8d9c0b39fe 100644 --- a/modules/pacing/paced_sender.cc +++ b/modules/pacing/paced_sender.cc @@ -207,17 +207,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); }