From e6ded16045a93db787b8bc4760f26d4ae6c6b9ea Mon Sep 17 00:00:00 2001 From: Qingsi Wang Date: Tue, 2 Oct 2018 16:00:41 -0700 Subject: [PATCH] DCHECK that PortAllocator::SetConfiguration does not create a pooled session on a non-network thread. Bug: webrtc:9112 Change-Id: I79c31f1a7cd299dad8f9034cc9b83fcd8d3328f7 Reviewed-on: https://webrtc-review.googlesource.com/c/103305 Reviewed-by: Steve Anton Reviewed-by: Qingsi Wang Reviewed-by: Jeroen de Borst Commit-Queue: Qingsi Wang Cr-Commit-Position: refs/heads/master@{#24940} --- p2p/base/portallocator.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/p2p/base/portallocator.cc b/p2p/base/portallocator.cc index ee0466f796..5470b5b82e 100644 --- a/p2p/base/portallocator.cc +++ b/p2p/base/portallocator.cc @@ -129,6 +129,10 @@ bool PortAllocator::SetConfiguration( webrtc::TurnCustomizer* turn_customizer, const absl::optional& stun_candidate_keepalive_interval) { CheckRunOnValidThreadIfInitialized(); + // A positive candidate pool size would lead to the creation of a pooled + // allocator session and starting getting ports, which we should only do on + // the network thread. + RTC_DCHECK(candidate_pool_size == 0 || thread_checker_.CalledOnValidThread()); bool ice_servers_changed = (stun_servers != stun_servers_ || turn_servers != turn_servers_); stun_servers_ = stun_servers;