From 3409374cb7d8ba91c7f063834620596b27d497e4 Mon Sep 17 00:00:00 2001 From: eeb Date: Fri, 8 Jul 2005 14:51:27 +0000 Subject: [PATCH] * newconfig liblustre/tcpnal runs sanity OK --- lnet/ulnds/connection.c | 13 ++++++++++--- lnet/ulnds/proclib.c | 3 ++- lnet/ulnds/socklnd/connection.c | 13 ++++++++++--- lnet/ulnds/socklnd/proclib.c | 3 ++- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/lnet/ulnds/connection.c b/lnet/ulnds/connection.c index 67abfe3..fa13787 100644 --- a/lnet/ulnds/connection.c +++ b/lnet/ulnds/connection.c @@ -110,6 +110,14 @@ static unsigned int connection_key(void *arg) return (unsigned int)(*nid); } +void +close_connection(void *arg) +{ + connection c = arg; + + close(c->fd); + free(c); +} /* Function: remove_connection * Arguments: c: the connection to remove @@ -119,8 +127,7 @@ void remove_connection(void *arg) connection c = arg; hash_table_remove(c->m->connections,&c->peer_nid); - close(c->fd); - free(c); + close_connection(c); } @@ -535,7 +542,7 @@ void shutdown_connections(manager m) close(m->bound); remove_io_handler(m->bound_handler); #endif - hash_destroy_table(m->connections,remove_connection); + hash_destroy_table(m->connections,close_connection); free(m); } diff --git a/lnet/ulnds/proclib.c b/lnet/ulnds/proclib.c index c2dda30..b42581a 100644 --- a/lnet/ulnds/proclib.c +++ b/lnet/ulnds/proclib.c @@ -53,12 +53,13 @@ static void check_stopping(void *z) if ((p->nal_flags & NAL_FLAG_STOPPING) == 0) return; + tcpnal_shutdown(b); + pthread_mutex_lock(&p->mutex); p->nal_flags |= NAL_FLAG_STOPPED; pthread_cond_broadcast(&p->cond); pthread_mutex_unlock(&p->mutex); - tcpnal_shutdown(b); pthread_exit(0); } diff --git a/lnet/ulnds/socklnd/connection.c b/lnet/ulnds/socklnd/connection.c index 67abfe3..fa13787 100644 --- a/lnet/ulnds/socklnd/connection.c +++ b/lnet/ulnds/socklnd/connection.c @@ -110,6 +110,14 @@ static unsigned int connection_key(void *arg) return (unsigned int)(*nid); } +void +close_connection(void *arg) +{ + connection c = arg; + + close(c->fd); + free(c); +} /* Function: remove_connection * Arguments: c: the connection to remove @@ -119,8 +127,7 @@ void remove_connection(void *arg) connection c = arg; hash_table_remove(c->m->connections,&c->peer_nid); - close(c->fd); - free(c); + close_connection(c); } @@ -535,7 +542,7 @@ void shutdown_connections(manager m) close(m->bound); remove_io_handler(m->bound_handler); #endif - hash_destroy_table(m->connections,remove_connection); + hash_destroy_table(m->connections,close_connection); free(m); } diff --git a/lnet/ulnds/socklnd/proclib.c b/lnet/ulnds/socklnd/proclib.c index c2dda30..b42581a 100644 --- a/lnet/ulnds/socklnd/proclib.c +++ b/lnet/ulnds/socklnd/proclib.c @@ -53,12 +53,13 @@ static void check_stopping(void *z) if ((p->nal_flags & NAL_FLAG_STOPPING) == 0) return; + tcpnal_shutdown(b); + pthread_mutex_lock(&p->mutex); p->nal_flags |= NAL_FLAG_STOPPED; pthread_cond_broadcast(&p->cond); pthread_mutex_unlock(&p->mutex); - tcpnal_shutdown(b); pthread_exit(0); } -- 1.8.3.1