In RtcpTransceiver avoid extra PostTask during construction
it is not required because during construction members can be set on wrong thread, and in some corner cases it may even cause a crash. Bug: none Change-Id: I37d7f2a7772b6ab5e574077d3f53bca2529f9ae1 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/222651 Reviewed-by: Erik Språng <sprang@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/master@{#34315}
This commit is contained in:
parent
f9d5e55a31
commit
35b21ba8d4
@ -92,9 +92,7 @@ RtcpTransceiverImpl::RtcpTransceiverImpl(const RtcpTransceiverConfig& config)
|
||||
: config_(config), ready_to_send_(config.initial_ready_to_send) {
|
||||
RTC_CHECK(config_.Validate());
|
||||
if (ready_to_send_ && config_.schedule_periodic_compound_packets) {
|
||||
config_.task_queue->PostTask(ToQueuedTask([this] {
|
||||
SchedulePeriodicCompoundPackets(config_.initial_report_delay_ms);
|
||||
}));
|
||||
SchedulePeriodicCompoundPackets(config_.initial_report_delay_ms);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -169,6 +169,25 @@ TEST(RtcpTransceiverImplTest, NeedToStopPeriodicTaskToDestroyOnTaskQueue) {
|
||||
ASSERT_TRUE(done.Wait(/*milliseconds=*/1000));
|
||||
}
|
||||
|
||||
TEST(RtcpTransceiverImplTest, CanBeDestroyedRightAfterCreation) {
|
||||
SimulatedClock clock(0);
|
||||
FakeRtcpTransport transport;
|
||||
TaskQueueForTest queue("rtcp");
|
||||
RtcpTransceiverConfig config = DefaultTestConfig();
|
||||
config.clock = &clock;
|
||||
config.task_queue = queue.Get();
|
||||
config.schedule_periodic_compound_packets = true;
|
||||
config.outgoing_transport = &transport;
|
||||
|
||||
rtc::Event done;
|
||||
queue.PostTask([&] {
|
||||
RtcpTransceiverImpl rtcp_transceiver(config);
|
||||
rtcp_transceiver.StopPeriodicTask();
|
||||
done.Set();
|
||||
});
|
||||
ASSERT_TRUE(done.Wait(/*milliseconds=*/1000));
|
||||
}
|
||||
|
||||
TEST(RtcpTransceiverImplTest, CanDestroyAfterTaskQueue) {
|
||||
SimulatedClock clock(0);
|
||||
FakeRtcpTransport transport;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user