PUD: remove pointless mutex from dedup
authorFerry Huberts <ferry.huberts@pelagic.nl>
Tue, 27 Mar 2012 14:48:26 +0000 (16:48 +0200)
committerFerry Huberts <ferry.huberts@pelagic.nl>
Wed, 28 Mar 2012 16:18:17 +0000 (18:18 +0200)
The mutex is pointless because there is no
multi-threading in olsr.

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
lib/pud/src/dedup.c
lib/pud/src/dedup.h

index 05cc852..9392ddf 100644 (file)
@@ -30,7 +30,6 @@
  - true otherwise
  */
 bool initDeDupList(DeDupList * deDupList, unsigned long long maxEntries) {
-       pthread_mutexattr_t attr;
        void * p;
 
        if (deDupList == NULL) {
@@ -40,16 +39,6 @@ bool initDeDupList(DeDupList * deDupList, unsigned long long maxEntries) {
                return false;
        }
 
-       if (pthread_mutexattr_init(&attr)) {
-               return false;
-       }
-       if (pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP)) {
-               return false;
-       }
-       if (pthread_mutex_init(&deDupList->mutex, &attr)) {
-               return false;
-       }
-
        p = olsr_malloc(maxEntries * sizeof(DeDupEntry),
                        "DeDupEntry entries for DeDupList (PUD)");
        if (p == NULL) {
@@ -74,8 +63,6 @@ bool initDeDupList(DeDupList * deDupList, unsigned long long maxEntries) {
 void destroyDeDupList(DeDupList * deDupList) {
        assert (deDupList != NULL);
 
-       (void) pthread_mutex_lock(&deDupList->mutex);
-
        if (deDupList->entries != NULL) {
                free(deDupList->entries);
                deDupList->entries = NULL;
@@ -85,10 +72,6 @@ void destroyDeDupList(DeDupList * deDupList) {
 
        deDupList->entriesCount = 0;
        deDupList->newestEntryIndex = 0;
-
-       (void) pthread_mutex_unlock(&deDupList->mutex);
-
-       pthread_mutex_destroy(&deDupList->mutex);
 }
 
 /**
@@ -105,8 +88,6 @@ void addToDeDup(DeDupList * deDupList, union olsr_message *olsrMessage) {
 
        assert (deDupList != NULL);
 
-       (void) pthread_mutex_lock(&deDupList->mutex);
-
        incomingIndex = INCOMINGINDEX(deDupList);
        newEntry = &deDupList->entries[incomingIndex];
 
@@ -123,8 +104,6 @@ void addToDeDup(DeDupList * deDupList, union olsr_message *olsrMessage) {
        if (deDupList->entriesCount < deDupList->entriesMaxCount) {
                deDupList ->entriesCount++;
        }
-
-       (void) pthread_mutex_unlock(&deDupList->mutex);
 }
 
 /**
@@ -145,8 +124,6 @@ bool isInDeDupList(DeDupList * deDupList, union olsr_message *olsrMessage) {
        unsigned long long iteratedIndex;
        unsigned long long count;
 
-       (void) pthread_mutex_lock(&deDupList->mutex);
-
        iteratedIndex = NEWESTINDEX(deDupList);
        count = deDupList->entriesCount;
 
@@ -175,7 +152,5 @@ bool isInDeDupList(DeDupList * deDupList, union olsr_message *olsrMessage) {
                count--;
        }
 
-       (void) pthread_mutex_unlock(&deDupList->mutex);
-
        return retval;
 }
index 0e8b1af..53c65f3 100644 (file)
@@ -10,7 +10,6 @@
 /* System includes */
 #include <stdint.h>
 #include <stdbool.h>
-#include <pthread.h>
 
 /* A de-duplication entry holding the information to compare, 18 bytes */
 typedef struct _DeDupEntry {
@@ -25,8 +24,6 @@ typedef struct _DeDupEntry {
  The list is a circular list.
  */
 typedef struct _DeDupList {
-       pthread_mutex_t mutex; /**< access mutex */
-
        unsigned long long entriesMaxCount; /**< the maximum number of entries in the list */
        DeDupEntry * entries; /**< the list entries */