Ensure thread handle is closed too.
authorGisle Vanem <gvanem@broadpark.no>
Tue, 14 Jun 2005 14:47:21 +0000 (14:47 +0000)
committerGisle Vanem <gvanem@broadpark.no>
Tue, 14 Jun 2005 14:47:21 +0000 (14:47 +0000)
lib/hostthre.c

index eb663e8..070eb22 100644 (file)
@@ -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;