* [GAM-44] adds threadsafeness to DltWrapper
authorchristian mueller <christian.ei.mueller@bmw.de>
Fri, 23 Mar 2012 12:09:35 +0000 (13:09 +0100)
committerchristian mueller <christian.ei.mueller@bmw.de>
Fri, 23 Mar 2012 12:09:35 +0000 (13:09 +0100)
Signed-off-by: christian mueller <christian.ei.mueller@bmw.de>
AudioManagerDaemon/src/CAmDltWrapper.cpp
include/shared/CAmDltWrapper.h

index 6b9e6a5..5449d7d 100644 (file)
@@ -30,6 +30,7 @@ namespace am
 {
 
 CAmDltWrapper* CAmDltWrapper::mpDLTWrapper = NULL;
+pthread_mutex_t CAmDltWrapper::logMutex = PTHREAD_MUTEX_INITIALIZER;
 
 CAmDltWrapper *CAmDltWrapper::instance(const bool enableNoDLTDebug)
 {
index f34e35e..7a55626 100644 (file)
@@ -88,6 +88,7 @@ namespace am
 class CAmDltWrapper
 {
 public:
+    static pthread_mutex_t logMutex;
     static CAmDltWrapper* instance(const bool enableNoDLTDebug = false);
     void registerApp(const char *appid, const char * description);
     void registerContext(DltContext& handle, const char *contextid, const char * description);
@@ -136,9 +137,11 @@ inline CAmDltWrapper* getWrapper()
 template<typename T> void logInfo(T value)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(DLT_LOG_INFO);
     inst->append(value);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -149,10 +152,12 @@ template<typename T> void logInfo(T value)
 template<typename T, typename T1> void logInfo(T value, T1 value1)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(DLT_LOG_INFO);
     inst->append(value);
     inst->append(value1);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -164,11 +169,13 @@ template<typename T, typename T1> void logInfo(T value, T1 value1)
 template<typename T, typename T1, typename T2> void logInfo(T value, T1 value1, T2 value2)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(DLT_LOG_INFO);
     inst->append(value);
     inst->append(value1);
     inst->append(value2);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -181,12 +188,14 @@ template<typename T, typename T1, typename T2> void logInfo(T value, T1 value1,
 template<typename T, typename T1, typename T2, typename T3> void logInfo(T value, T1 value1, T2 value2, T3 value3)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(DLT_LOG_INFO);
     inst->append(value);
     inst->append(value1);
     inst->append(value2);
     inst->append(value3);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -200,6 +209,7 @@ template<typename T, typename T1, typename T2, typename T3> void logInfo(T value
 template<typename T, typename T1, typename T2, typename T3, typename T4> void logInfo(T value, T1 value1, T2 value2, T3 value3, T4 value4)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(DLT_LOG_INFO);
     inst->append(value);
     inst->append(value1);
@@ -207,6 +217,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4> void lo
     inst->append(value3);
     inst->append(value4);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -221,6 +232,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4> void lo
 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5> void logInfo(T value, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(DLT_LOG_INFO);
     inst->append(value);
     inst->append(value1);
@@ -229,6 +241,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
     inst->append(value4);
     inst->append(value5);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -244,6 +257,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6> void logInfo(T value, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(DLT_LOG_INFO);
     inst->append(value);
     inst->append(value1);
@@ -253,6 +267,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
     inst->append(value5);
     inst->append(value6);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -269,6 +284,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7> void logInfo(T value, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(DLT_LOG_INFO);
     inst->append(value);
     inst->append(value1);
@@ -279,6 +295,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
     inst->append(value6);
     inst->append(value7);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -296,6 +313,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8> void logInfo(T value, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(DLT_LOG_INFO);
     inst->append(value);
     inst->append(value1);
@@ -307,6 +325,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
     inst->append(value7);
     inst->append(value8);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -325,6 +344,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9> void logInfo(T value, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(DLT_LOG_INFO);
     inst->append(value);
     inst->append(value1);
@@ -337,6 +357,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
     inst->append(value8);
     inst->append(value9);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -356,6 +377,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10> void logInfo(T value, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(DLT_LOG_INFO);
     inst->append(value);
     inst->append(value1);
@@ -369,6 +391,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
     inst->append(value9);
     inst->append(value10);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -378,9 +401,11 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
 template<typename T> void logError(T value)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(DLT_LOG_ERROR);
     inst->append(value);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -391,10 +416,12 @@ template<typename T> void logError(T value)
 template<typename T, typename T1> void logError(T value, T1 value1)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(DLT_LOG_ERROR);
     inst->append(value);
     inst->append(value1);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -406,11 +433,13 @@ template<typename T, typename T1> void logError(T value, T1 value1)
 template<typename T, typename T1, typename T2> void logError(T value, T1 value1, T2 value2)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(DLT_LOG_ERROR);
     inst->append(value);
     inst->append(value1);
     inst->append(value2);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -423,12 +452,14 @@ template<typename T, typename T1, typename T2> void logError(T value, T1 value1,
 template<typename T, typename T1, typename T2, typename T3> void logError(T value, T1 value1, T2 value2, T3 value3)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(DLT_LOG_ERROR);
     inst->append(value);
     inst->append(value1);
     inst->append(value2);
     inst->append(value3);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -442,6 +473,7 @@ template<typename T, typename T1, typename T2, typename T3> void logError(T valu
 template<typename T, typename T1, typename T2, typename T3, typename T4> void logError(T value, T1 value1, T2 value2, T3 value3, T4 value4)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(DLT_LOG_ERROR);
     inst->append(value);
     inst->append(value1);
@@ -449,6 +481,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4> void lo
     inst->append(value3);
     inst->append(value4);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -463,6 +496,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4> void lo
 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5> void logError(T value, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(DLT_LOG_ERROR);
     inst->append(value);
     inst->append(value1);
@@ -471,6 +505,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
     inst->append(value4);
     inst->append(value5);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -486,6 +521,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6> void logError(T value, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(DLT_LOG_ERROR);
     inst->append(value);
     inst->append(value1);
@@ -495,6 +531,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
     inst->append(value5);
     inst->append(value6);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -511,6 +548,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7> void logError(T value, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(DLT_LOG_ERROR);
     inst->append(value);
     inst->append(value1);
@@ -521,6 +559,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
     inst->append(value6);
     inst->append(value7);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -538,6 +577,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8> void logError(T value, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(DLT_LOG_ERROR);
     inst->append(value);
     inst->append(value1);
@@ -549,6 +589,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
     inst->append(value7);
     inst->append(value8);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -567,6 +608,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9> void logError(T value, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(DLT_LOG_ERROR);
     inst->append(value);
     inst->append(value1);
@@ -579,6 +621,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
     inst->append(value8);
     inst->append(value9);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -598,6 +641,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10> void logError(T value, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(DLT_LOG_ERROR);
     inst->append(value);
     inst->append(value1);
@@ -611,6 +655,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
     inst->append(value9);
     inst->append(value10);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -622,9 +667,11 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
 template<typename T> void log(DltContext* const context, DltLogLevelType loglevel, T value)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(loglevel, context);
     inst->append(value);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -637,10 +684,12 @@ template<typename T> void log(DltContext* const context, DltLogLevelType logleve
 template<typename T, typename T1> void log(DltContext* const context, DltLogLevelType loglevel, T value, T1 value1)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(loglevel, context);
     inst->append(value);
     inst->append(value1);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -654,11 +703,13 @@ template<typename T, typename T1> void log(DltContext* const context, DltLogLeve
 template<typename T, typename T1, typename T2> void log(DltContext* const context, DltLogLevelType loglevel, T value, T1 value1, T2 value2)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(loglevel, context);
     inst->append(value);
     inst->append(value1);
     inst->append(value2);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -673,12 +724,14 @@ template<typename T, typename T1, typename T2> void log(DltContext* const contex
 template<typename T, typename T1, typename T2, typename T3> void log(DltContext* const context, DltLogLevelType loglevel, T value, T1 value1, T2 value2, T3 value3)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(loglevel, context);
     inst->append(value);
     inst->append(value1);
     inst->append(value2);
     inst->append(value3);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -694,6 +747,7 @@ template<typename T, typename T1, typename T2, typename T3> void log(DltContext*
 template<typename T, typename T1, typename T2, typename T3, typename T4> void log(DltContext* const context, DltLogLevelType loglevel, T value, T1 value1, T2 value2, T3 value3, T4 value4)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(loglevel, context);
     inst->append(value);
     inst->append(value1);
@@ -701,6 +755,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4> void lo
     inst->append(value3);
     inst->append(value4);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -717,6 +772,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4> void lo
 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5> void log(DltContext* const context, DltLogLevelType loglevel, T value, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(loglevel, context);
     inst->append(value);
     inst->append(value1);
@@ -725,6 +781,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
     inst->append(value4);
     inst->append(value5);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -742,6 +799,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6> void log(DltContext* const context, DltLogLevelType loglevel, T value, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(loglevel, context);
     inst->append(value);
     inst->append(value1);
@@ -751,6 +809,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
     inst->append(value5);
     inst->append(value6);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -769,6 +828,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7> void log(DltContext* const context, DltLogLevelType loglevel, T value, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(loglevel, context);
     inst->append(value);
     inst->append(value1);
@@ -779,6 +839,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
     inst->append(value6);
     inst->append(value7);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 
 /**
@@ -798,6 +859,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
 template<typename T, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8> void log(DltContext* const context, DltLogLevelType loglevel, T value, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8)
 {
     CAmDltWrapper* inst(getWrapper());
+    pthread_mutex_lock(&inst->logMutex);
     inst->init(loglevel, context);
     inst->append(value);
     inst->append(value1);
@@ -809,6 +871,7 @@ template<typename T, typename T1, typename T2, typename T3, typename T4, typenam
     inst->append(value7);
     inst->append(value8);
     inst->send();
+    pthread_mutex_unlock(&inst->logMutex);
 }
 }