summaryrefslogtreecommitdiffstats
path: root/src/server/server.c
diff options
context:
space:
mode:
authorSimon Rettberg2014-12-31 20:44:32 +0100
committerSimon Rettberg2014-12-31 20:44:32 +0100
commit5b322c5d9ba4c0706c66055be980a814de837002 (patch)
treea71282a7896e28bfaeef038cbd04ed32f24ff0a7 /src/server/server.c
parent[SERVER] Create compilation unit for wait/signalling logic (using eventfd) (diff)
downloaddnbd3-5b322c5d9ba4c0706c66055be980a814de837002.tar.gz
dnbd3-5b322c5d9ba4c0706c66055be980a814de837002.tar.xz
dnbd3-5b322c5d9ba4c0706c66055be980a814de837002.zip
[SERVER] Minor tweaks and improvements
Diffstat (limited to 'src/server/server.c')
-rw-r--r--src/server/server.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/server/server.c b/src/server/server.c
index e502543..3c3fa06 100644
--- a/src/server/server.c
+++ b/src/server/server.c
@@ -446,8 +446,10 @@ void dnbd3_remove_client(dnbd3_client_t *client)
dnbd3_client_t* dnbd3_free_client(dnbd3_client_t *client)
{
spin_lock( &client->lock );
+ pthread_mutex_lock( &client->sendMutex );
if ( client->sock >= 0 ) close( client->sock );
client->sock = -1;
+ pthread_mutex_unlock( &client->sendMutex );
if ( client->image != NULL ) {
spin_lock( &client->image->lock );
if ( client->image->uplink != NULL ) uplink_removeClient( client->image->uplink, client );
@@ -457,8 +459,6 @@ dnbd3_client_t* dnbd3_free_client(dnbd3_client_t *client)
client->image = NULL;
spin_unlock( &client->lock );
spin_destroy( &client->lock );
- pthread_mutex_lock( &client->sendMutex );
- pthread_mutex_unlock( &client->sendMutex );
pthread_mutex_destroy( &client->sendMutex );
free( client );
return NULL ;