Reland "Reland "Removes lock release in PacedSender callback.""
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 <srte@webrtc.org> > > Commit-Queue: Erik Språng <sprang@webrtc.org> > > 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 <srte@webrtc.org> > Commit-Queue: Erik Språng <sprang@webrtc.org> > 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 <srte@webrtc.org> Commit-Queue: Erik Språng <sprang@webrtc.org> Cr-Commit-Position: refs/heads/master@{#31588}
This commit is contained in:
@ -207,17 +207,11 @@ void PacedSender::SetQueueTimeLimit(TimeDelta limit) {
|
|||||||
|
|
||||||
void PacedSender::SendRtpPacket(std::unique_ptr<RtpPacketToSend> packet,
|
void PacedSender::SendRtpPacket(std::unique_ptr<RtpPacketToSend> packet,
|
||||||
const PacedPacketInfo& cluster_info) {
|
const PacedPacketInfo& cluster_info) {
|
||||||
critsect_.Leave();
|
|
||||||
packet_router_->SendPacket(std::move(packet), cluster_info);
|
packet_router_->SendPacket(std::move(packet), cluster_info);
|
||||||
critsect_.Enter();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::unique_ptr<RtpPacketToSend>> PacedSender::GeneratePadding(
|
std::vector<std::unique_ptr<RtpPacketToSend>> PacedSender::GeneratePadding(
|
||||||
DataSize size) {
|
DataSize size) {
|
||||||
std::vector<std::unique_ptr<RtpPacketToSend>> padding_packets;
|
return packet_router_->GeneratePadding(size.bytes());
|
||||||
critsect_.Leave();
|
|
||||||
padding_packets = packet_router_->GeneratePadding(size.bytes());
|
|
||||||
critsect_.Enter();
|
|
||||||
return padding_packets;
|
|
||||||
}
|
}
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
@ -55,7 +55,6 @@ DirectTransport::~DirectTransport() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void DirectTransport::SetReceiver(PacketReceiver* receiver) {
|
void DirectTransport::SetReceiver(PacketReceiver* receiver) {
|
||||||
rtc::CritScope cs(&process_lock_);
|
|
||||||
fake_network_->SetReceiver(receiver);
|
fake_network_->SetReceiver(receiver);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user