diff options
-rw-r--r-- | lib/hostthre.c | 7 |
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; |