Fix TSAN conflict in AsyncDnsResolver
Bug: webrtc:12598 Change-Id: I42daf93b26ea56614812fedc26efa850db0d6526 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/317561 Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Commit-Queue: Harald Alvestrand <hta@webrtc.org> Cr-Commit-Position: refs/heads/main@{#40615}
This commit is contained in:
parent
d36be2fc22
commit
f45c2ceae0
@ -109,13 +109,13 @@ void AsyncDnsResolver::Start(const rtc::SocketAddress& addr,
|
|||||||
std::function<void()> callback) {
|
std::function<void()> callback) {
|
||||||
RTC_DCHECK_RUN_ON(&result_.sequence_checker_);
|
RTC_DCHECK_RUN_ON(&result_.sequence_checker_);
|
||||||
result_.addr_ = addr;
|
result_.addr_ = addr;
|
||||||
auto thread_function = [this, addr, family,
|
auto thread_function = [this, addr, family, flag = safety_.flag(),
|
||||||
caller_task_queue = webrtc::TaskQueueBase::Current(),
|
caller_task_queue = webrtc::TaskQueueBase::Current(),
|
||||||
callback = std::move(callback)] {
|
callback = std::move(callback)] {
|
||||||
std::vector<rtc::IPAddress> addresses;
|
std::vector<rtc::IPAddress> addresses;
|
||||||
int error = ResolveHostname(addr.hostname(), family, addresses);
|
int error = ResolveHostname(addr.hostname(), family, addresses);
|
||||||
caller_task_queue->PostTask(
|
caller_task_queue->PostTask(
|
||||||
SafeTask(safety_.flag(), [this, error, addresses = std::move(addresses),
|
SafeTask(flag, [this, error, addresses = std::move(addresses),
|
||||||
callback = std::move(callback)] {
|
callback = std::move(callback)] {
|
||||||
RTC_DCHECK_RUN_ON(&result_.sequence_checker_);
|
RTC_DCHECK_RUN_ON(&result_.sequence_checker_);
|
||||||
result_.addresses_ = addresses;
|
result_.addresses_ = addresses;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user