summaryrefslogtreecommitdiffstats
path: root/src/server/net.c
diff options
context:
space:
mode:
authorsr2013-07-17 12:10:01 +0200
committersr2013-07-17 12:10:01 +0200
commit3fd89450610679c6b777767632d2af5751773295 (patch)
treefdf63e0555bba9601f012ad5ce3eff631941bc4f /src/server/net.c
parentAdd debug-lock functions that will helpt to spot deadlocks etc. while developing (diff)
downloaddnbd3-3fd89450610679c6b777767632d2af5751773295.tar.gz
dnbd3-3fd89450610679c6b777767632d2af5751773295.tar.xz
dnbd3-3fd89450610679c6b777767632d2af5751773295.zip
Replace all pthread_spin_* calls with spin_*, so that all locking can be tracked and debugged
Fix compilation of kernel module
Diffstat (limited to 'src/server/net.c')
-rw-r--r--src/server/net.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/server/net.c b/src/server/net.c
index 214f1cd..4efdc00 100644
--- a/src/server/net.c
+++ b/src/server/net.c
@@ -36,6 +36,7 @@
#include "memlog.h"
#include "../serialize.h"
#include "../config.h"
+#include "locks.h"
static inline char recv_request_header(int sock, dnbd3_request_t *request)
{
@@ -347,12 +348,12 @@ void *net_client_handler(void *dnbd3_client)
// Check for messages that have been queued from another thread
while ( client->sendqueue != NULL ) {
dnbd3_binstring_t *message = NULL;
- pthread_spin_lock( &client->lock );
+ spin_lock( &client->lock );
if ( client->sendqueue != NULL ) {
message = client->sendqueue->data;
client->sendqueue = g_slist_remove( client->sendqueue, message );
}
- pthread_spin_unlock( &client->lock );
+ spin_unlock( &client->lock );
send_data( client->sock, message->data, message->len );
free( message );
}