IVGCVSW-4701 Make the GUIDGenerator thread safe

Signed-off-by: Finn Williams <Finn.Williams@arm.com>
Change-Id: Ide55731c51a8b77d71bfa4f3f7f0d122bb643d87
diff --git a/src/profiling/ProfilingGuidGenerator.hpp b/src/profiling/ProfilingGuidGenerator.hpp
index a319035..dc6e22b 100644
--- a/src/profiling/ProfilingGuidGenerator.hpp
+++ b/src/profiling/ProfilingGuidGenerator.hpp
@@ -8,6 +8,7 @@
 #include "armnn/profiling/IProfilingGuidGenerator.hpp"
 
 #include <functional>
+#include <mutex>
 
 namespace armnn
 {
@@ -24,6 +25,7 @@
     /// Return the next random Guid in the sequence
     inline ProfilingDynamicGuid NextGuid() override
     {
+        std::lock_guard<std::mutex> sequencelock(m_SequenceMutex);
         ProfilingDynamicGuid guid(m_Sequence);
         m_Sequence++;
         if (m_Sequence >= MIN_STATIC_GUID)
@@ -42,8 +44,9 @@
     }
 
 private:
-    uint64_t m_Sequence;
     std::hash<std::string> m_Hash;
+    uint64_t m_Sequence;
+    std::mutex m_SequenceMutex;
 };
 
 } // namespace profiling