version 4.0.7 07/3107/1
authoraa7133@att.com <aa7133@att.com>
Thu, 2 Apr 2020 07:20:52 +0000 (10:20 +0300)
committeraa7133@att.com <aa7133@att.com>
Thu, 2 Apr 2020 07:21:17 +0000 (10:21 +0300)
Patch on stat and remove tbb
set logging flag to debug

Change-Id: I3f4f56ce8d3de19e94e706f15758501ebc7cacaf
Signed-off-by: aa7133@att.com <aa7133@att.com>
RIC-E2-TERMINATION/config/config.conf
RIC-E2-TERMINATION/statCollector.h

index 6b57be1..2bfe8b1 100644 (file)
@@ -1,5 +1,5 @@
 nano=38000
-loglevel=info
+loglevel=debug
 volume=log
 #the key name of the environment holds the local ip address
 local-ip=127.0.0.1
index 706426d..3279585 100644 (file)
@@ -33,9 +33,9 @@
 #include <ctime>
 #include <iomanip>
 #include <mdclog/mdclog.h>
-#include <tbb/concurrent_unordered_map.h>
+//#include <tbb/concurrent_unordered_map.h>
 
-using namespace tbb;
+//using namespace tbb;
 
 typedef struct statResult {
     std::string ranName;
@@ -75,10 +75,10 @@ public:
         for (auto const &e : recvMessages) {
             statResult_t result {};
             result.ranName = e.first;
-            result.receivedMessages = e.second;
+            result.receivedMessages = e.second.load(std::memory_order_acquire);
             auto found = sentMessages.find(result.ranName);
             if (found != sentMessages.end()) {
-                result.sentMessages = found->second;
+                result.sentMessages = found->second.load(std::memory_order_acquire);
             } else {
               result.sentMessages = 0;
             }
@@ -92,10 +92,10 @@ public:
     StatCollector& operator=(const StatCollector&)= delete;
 
 private:
-    tbb::concurrent_unordered_map<std::string, int> sentMessages;
-    //std::unordered_map<std::string, int> sentMessages;
-    //std::unordered_map<std::string, int> recvMessages;
-    tbb::concurrent_unordered_map<std::string, int> recvMessages;
+    //tbb::concurrent_unordered_map<std::string, int> sentMessages;
+    std::unordered_map<std::string, std::atomic<int>> sentMessages;
+    std::unordered_map<std::string, std::atomic<int>> recvMessages;
+//    tbb::concurrent_unordered_map<std::string, int> recvMessages;
     std::vector<statResult_t> results;
 
 
@@ -107,50 +107,26 @@ private:
     ~StatCollector() = default;
 
 
-    void increment(tbb::concurrent_unordered_map<std::string, int> &map, const std::string &key);
+    void increment(std::unordered_map<std::string, std::atomic<int>> &map, const std::string &key);
 
 };
 
-void StatCollector::increment(tbb::concurrent_unordered_map<std::string, int> &map, const std::string &key) {
-    if (mdclog_level_get() >= MDCLOG_DEBUG) {
-        mdclog_write(MDCLOG_INFO, "in file %s at  finction %s in line %d", __FILE__, __func__, __LINE__);
-    }
+void StatCollector::increment(std::unordered_map<std::string, std::atomic<int>> &map, const std::string &key) {
     if (map.empty()) {
-        if (mdclog_level_get() >= MDCLOG_DEBUG) {
-            mdclog_write(MDCLOG_INFO, "in file %s at  finction %s in line %d", __FILE__, __func__, __LINE__);
-        }
         map.emplace(std::piecewise_construct,
                     std::forward_as_tuple(key),
                     std::forward_as_tuple(1));
-        if (mdclog_level_get() >= MDCLOG_DEBUG) {
-            mdclog_write(MDCLOG_INFO, "in file %s at  finction %s in line %d", __FILE__, __func__, __LINE__);
-        }
         return;
     }
-    if (mdclog_level_get() >= MDCLOG_DEBUG) {
-        mdclog_write(MDCLOG_INFO, "in file %s at  finction %s in line %d", __FILE__, __func__, __LINE__);
-    }
     auto found = map.find(key);
-    if (mdclog_level_get() >= MDCLOG_DEBUG) {
-        mdclog_write(MDCLOG_INFO, "in file %s at  finction %s in line %d", __FILE__, __func__, __LINE__);
-    }
     if (found != map.end()) { //inc
-        if (mdclog_level_get() >= MDCLOG_DEBUG) {
-            mdclog_write(MDCLOG_INFO, "in file %s at  finction %s in line %d", __FILE__, __func__, __LINE__);
-        }
-        map[key]++;
+        map[key].fetch_add(1, std::memory_order_release);
+        //map[key]++;
     } else { //add
         //sentMessages.emplace(std::make_pair(std::string(key), std::atomic<int>(0)));
-        if (mdclog_level_get() >= MDCLOG_DEBUG) {
-            mdclog_write(MDCLOG_INFO, "in file %s at  finction %s in line %d", __FILE__, __func__, __LINE__);
-        }
-
         map.emplace(std::piecewise_construct,
                     std::forward_as_tuple(key),
                     std::forward_as_tuple(1));
-        if (mdclog_level_get() >= MDCLOG_DEBUG) {
-            mdclog_write(MDCLOG_INFO, "in file %s at  finction %s in line %d", __FILE__, __func__, __LINE__);
-        }
     }
 
 }