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 <srte@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31206}
This commit is contained in:
Erik Språng 2020-05-10 14:29:03 +02:00 committed by Commit Bot
parent cc8c07895d
commit 6b9c60b06d
2 changed files with 1 additions and 8 deletions

View File

@ -196,17 +196,11 @@ void PacedSender::SetQueueTimeLimit(TimeDelta limit) {
void PacedSender::SendRtpPacket(std::unique_ptr<RtpPacketToSend> packet,
const PacedPacketInfo& cluster_info) {
critsect_.Leave();
packet_router_->SendPacket(std::move(packet), cluster_info);
critsect_.Enter();
}
std::vector<std::unique_ptr<RtpPacketToSend>> PacedSender::GeneratePadding(
DataSize size) {
std::vector<std::unique_ptr<RtpPacketToSend>> padding_packets;
critsect_.Leave();
padding_packets = packet_router_->GeneratePadding(size.bytes());
critsect_.Enter();
return padding_packets;
return packet_router_->GeneratePadding(size.bytes());
}
} // namespace webrtc

View File

@ -55,7 +55,6 @@ DirectTransport::~DirectTransport() {
}
void DirectTransport::SetReceiver(PacketReceiver* receiver) {
rtc::CritScope cs(&process_lock_);
fake_network_->SetReceiver(receiver);
}