aboutsummaryrefslogtreecommitdiff
path: root/lib/hostthre.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/hostthre.c')
-rw-r--r--lib/hostthre.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/hostthre.c b/lib/hostthre.c
index eb663e88b..070eb22ff 100644
--- a/lib/hostthre.c
+++ b/lib/hostthre.c
@@ -299,7 +299,7 @@ static unsigned __stdcall getaddrinfo_thread (void *arg)
#endif
/*
- * Curl_destroy_thread_data() cleans up async resolver data.
+ * Curl_destroy_thread_data() cleans up async resolver data and thread handle.
* Complementary of ares_destroy.
*/
void Curl_destroy_thread_data (struct Curl_async *async)
@@ -321,6 +321,9 @@ void Curl_destroy_thread_data (struct Curl_async *async)
if (td->event_resolved)
CloseHandle(td->event_resolved);
+ if (td->thread_hnd)
+ CloseHandle(td->thread_hnd);
+
free(async->os_specific);
}
async->hostname = NULL;
@@ -481,8 +484,6 @@ CURLcode Curl_wait_for_resolv(struct connectdata *conn,
TRACE(("elapsed %lu ms\n", GetTickCount()-ticks));
- CloseHandle(td->thread_hnd);
-
if(entry)
*entry = conn->async.dns;