Avoid deallocating the async invoker when clearing the transport.

Deallocating the async invoker is a costly operation
but it's also unnecessary and could cause us to miss signal
events.

The data_channel_transport and data_channel_transport_invoker
are (despite the name) not related, since the latter is
used to signal events on the signaling thread whereas the
former deals with the data.

Bug: webrtc:11908
Change-Id: I37b345476a6381aef5d87807877ec1e05b380137
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/184062
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32096}
This commit is contained in:
Tomas Gunnarsson
2020-09-12 23:10:17 +02:00
committed by Commit Bot
parent 8452ea86c5
commit 6da271844c
2 changed files with 9 additions and 10 deletions

View File

@ -221,8 +221,9 @@ class DataChannelController : public RtpDataChannelProviderInterface,
sigslot::signal1<SctpDataChannel*> SignalSctpDataChannelCreated_
RTC_GUARDED_BY(signaling_thread());
// Used to invoke data channel transport signals on the signaling thread.
std::unique_ptr<rtc::AsyncInvoker> data_channel_transport_invoker_
// Used from the network thread to invoke data channel transport signals on
// the signaling thread.
rtc::AsyncInvoker data_channel_transport_invoker_
RTC_GUARDED_BY(network_thread());
// Owning PeerConnection.