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