summaryrefslogtreecommitdiffstats
path: root/net/base/host_resolver.cc
diff options
context:
space:
mode:
Diffstat (limited to 'net/base/host_resolver.cc')
-rw-r--r--net/base/host_resolver.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/net/base/host_resolver.cc b/net/base/host_resolver.cc
index f3091a6..101c5ec 100644
--- a/net/base/host_resolver.cc
+++ b/net/base/host_resolver.cc
@@ -84,8 +84,8 @@ struct HostResolver::Request :
Request* r = reinterpret_cast<Request*>(param);
// The HostResolver may have gone away.
if (r->addresses) {
- DCHECK(r->addresses);
- r->addresses->Adopt(r->results);
+ if (r->error == OK)
+ r->addresses->Adopt(r->results);
if (r->callback)
r->callback->Run(r->error);
} else if (r->results) {
@@ -94,7 +94,7 @@ struct HostResolver::Request :
r->Release();
}
- static DWORD CALLBACK DoLookup(void* param) {
+ static DWORD WINAPI DoLookup(void* param) {
Request* r = static_cast<Request*>(param);
r->error = ResolveAddrInfo(r->host, r->port, &r->results);
@@ -118,6 +118,7 @@ HostResolver::HostResolver() {
HostResolver::~HostResolver() {
if (request_) {
+ // Prevent the thread pool from running the callback.
request_->addresses = NULL;
request_->callback = NULL;
}