summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTimo Dritschler <timo.dritschler@kit.edu>2014-07-25 12:20:09 +0200
committerTimo Dritschler <timo.dritschler@kit.edu>2014-07-25 12:20:09 +0200
commitf161b80fb93af73713516267787b1ef41fca68f4 (patch)
treec8883d4633a6246b969d5194f26f2e69cf3b9487 /src
parentdead85f8d5aa2445b1de723979b78d973a522310 (diff)
downloadkiro-f161b80fb93af73713516267787b1ef41fca68f4.tar.gz
kiro-f161b80fb93af73713516267787b1ef41fca68f4.tar.bz2
kiro-f161b80fb93af73713516267787b1ef41fca68f4.tar.xz
kiro-f161b80fb93af73713516267787b1ef41fca68f4.zip
Removed superfluous mutex to prevent deadlock situations
Diffstat (limited to 'src')
-rw-r--r--src/kiro-server.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/src/kiro-server.c b/src/kiro-server.c
index 9a76007..3a112e6 100644
--- a/src/kiro-server.c
+++ b/src/kiro-server.c
@@ -54,7 +54,6 @@ struct _KiroServerPrivate {
struct rdma_cm_id *base; // Base-Listening-Connection
struct kiro_connection *client; // Connection to the client
pthread_t event_listener; // Pointer to the completion-listener thread of this connection
- pthread_mutex_t mtx; // Mutex to signal the listener-thread termination
int close_signal; // Integer flag used to signal to the listener-thread that the server is going to shut down
void *mem; // Pointer to the server buffer
size_t mem_size; // Server Buffer Size in bytes
@@ -205,12 +204,9 @@ void * event_loop (void *self)
while(0 == priv->close_signal) {
if(0 <= rdma_get_cm_event(priv->ec, &active_event))
{
- //Lock mutex to signal that this thread is currently handling an event
- //and disable cancellation to prevent undefined states during shutdown
+ //Disable cancellation to prevent undefined states during shutdown
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
- pthread_mutex_lock(&(priv->mtx));
-
-
+
struct rdma_cm_event *ev = malloc(sizeof(*active_event));
if(!ev)
{
@@ -260,7 +256,6 @@ void * event_loop (void *self)
free(ev);
}
- pthread_mutex_unlock(&(priv->mtx));
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
}
@@ -350,7 +345,6 @@ int kiro_server_start (KiroServer *self, char *address, char *port, void* mem, s
return -1;
}
- pthread_mutex_init(&(priv->mtx), NULL);
pthread_create(&(priv->event_listener), NULL, event_loop, self);
printf("Enpoint listening.\n");
@@ -373,7 +367,6 @@ kiro_server_stop (KiroServer *self)
//Shut down the listener-thread
priv->close_signal = 1;
- pthread_mutex_lock(&(priv->mtx));
pthread_cancel(priv->event_listener);
pthread_join(priv->event_listener, NULL);
printf("Event Listener Thread stopped.\n");