| Index: net/proxy/multi_threaded_proxy_resolver.cc
|
| diff --git a/net/proxy/multi_threaded_proxy_resolver.cc b/net/proxy/multi_threaded_proxy_resolver.cc
|
| index ad1228c90b9a55a427022f97faf04230cd779e1d..c5922725e63daffaf0c76058242b29047a4fa353 100644
|
| --- a/net/proxy/multi_threaded_proxy_resolver.cc
|
| +++ b/net/proxy/multi_threaded_proxy_resolver.cc
|
| @@ -8,6 +8,7 @@
|
| #include "base/string_util.h"
|
| #include "base/stringprintf.h"
|
| #include "base/threading/thread.h"
|
| +#include "base/threading/thread_restrictions.h"
|
| #include "net/base/net_errors.h"
|
| #include "net/base/net_log.h"
|
| #include "net/proxy/proxy_info.h"
|
| @@ -337,7 +338,12 @@ void MultiThreadedProxyResolver::Executor::Destroy() {
|
| resolver_->Shutdown();
|
|
|
| // Join the worker thread.
|
| - thread_.reset();
|
| + {
|
| + // Allow IO because joining can block for a long time and is required
|
| + // by thread destructor.
|
| + base::ThreadRestrictions::ScopedAllowIO allow_io;
|
| + thread_.reset();
|
| + }
|
|
|
| // Cancel any outstanding job.
|
| if (outstanding_job_) {
|
|
|