aboutsummaryrefslogtreecommitdiff
path: root/lib/hostthre.c
diff options
context:
space:
mode:
authorGisle Vanem <gvanem@broadpark.no>2007-06-11 04:33:21 +0000
committerGisle Vanem <gvanem@broadpark.no>2007-06-11 04:33:21 +0000
commit1dcb99f0f7d0efe70c82fcc70728276444848cda (patch)
tree3e234d5dd43f65683a05f15622e304e5301ad981 /lib/hostthre.c
parent03bc2d34dabf8af603283263618021185443228d (diff)
constify 'hostname' in init_thread_sync_data(). Simply clear
the whole 'tsd' structure on exit in destroy_thread_sync_data().
Diffstat (limited to 'lib/hostthre.c')
-rw-r--r--lib/hostthre.c21
1 files changed, 8 insertions, 13 deletions
diff --git a/lib/hostthre.c b/lib/hostthre.c
index 15f6b3fd7..aebed8b38 100644
--- a/lib/hostthre.c
+++ b/lib/hostthre.c
@@ -179,28 +179,21 @@ struct thread_sync_data {
static
void destroy_thread_sync_data(struct thread_sync_data * tsd)
{
- if (tsd->hostname) {
+ if (tsd->hostname)
free(tsd->hostname);
- tsd->hostname = NULL;
- }
- if (tsd->event_terminate) {
+ if (tsd->event_terminate)
CloseHandle(tsd->event_terminate);
- tsd->event_terminate = NULL;
- }
- if (tsd->mutex_terminate) {
+ if (tsd->mutex_terminate)
CloseHandle(tsd->mutex_terminate);
- tsd->mutex_terminate = NULL;
- }
- if (tsd->mutex_waiting) {
+ if (tsd->mutex_waiting)
CloseHandle(tsd->mutex_waiting);
- tsd->mutex_waiting = NULL;
- }
+ memset(tsd,0,sizeof(*tsd));
}
/* Initialize resolver thread synchronization data */
static
BOOL init_thread_sync_data(struct thread_data * td,
- char * hostname,
+ const char * hostname,
struct thread_sync_data * tsd)
{
HANDLE curr_proc = GetCurrentProcess();
@@ -293,6 +286,7 @@ static unsigned __stdcall gethostbyname_thread (void *arg)
* due to a resolver timeout.
*/
struct thread_sync_data tsd = { 0,0,0,NULL };
+
if (!init_thread_sync_data(td, conn->async.hostname, &tsd)) {
/* thread synchronization data initialization failed */
return (unsigned)-1;
@@ -353,6 +347,7 @@ static unsigned __stdcall getaddrinfo_thread (void *arg)
* due to a resolver timeout.
*/
struct thread_sync_data tsd = { 0,0,0,NULL };
+
if (!init_thread_sync_data(td, conn->async.hostname, &tsd)) {
/* thread synchronization data initialization failed */
return -1;