MLCE-105 Fix use of std::unique_lock in LoadedNetwork

You can't use a unique_lock to check lock ownership by a
particular thread - it just checks whether the mutex
is locked by that lock.

Change-Id: I28190dc3bea91b3cc68f9b9381751e70fd70f43f
Signed-off-by: Matthew Bentham <matthew.bentham@arm.com>
diff --git a/src/armnn/LoadedNetwork.cpp b/src/armnn/LoadedNetwork.cpp
index 3464fb0..4221d36 100644
--- a/src/armnn/LoadedNetwork.cpp
+++ b/src/armnn/LoadedNetwork.cpp
@@ -73,7 +73,6 @@
 
 LoadedNetwork::LoadedNetwork(std::unique_ptr<OptimizedNetwork> net)
     : m_OptimizedNetwork(std::move(net))
-    , m_WorkingMemLock(m_WorkingMemMutex, std::defer_lock)
 {
     // Create a profiler and register it for the current thread.
     m_Profiler = std::make_shared<Profiler>();
@@ -410,7 +409,6 @@
 
 void LoadedNetwork::AllocateWorkingMemory()
 {
-    BOOST_ASSERT_MSG(m_WorkingMemLock.owns_lock(), "Cannot allocate working memory if mutex is not already locked.");
     if (m_IsWorkingMemAllocated)
     {
         return;
@@ -428,7 +426,7 @@
 
 void LoadedNetwork::FreeWorkingMemory()
 {
-    std::lock_guard<UniqueMutexLock> lockGuard(m_WorkingMemLock);
+    std::lock_guard<std::mutex> lockGuard(m_WorkingMemMutex);
     if (!m_IsWorkingMemAllocated)
     {
         return;
@@ -457,7 +455,7 @@
 
     try
     {
-        std::lock_guard<UniqueMutexLock> lockGuard(m_WorkingMemLock);
+        std::lock_guard<std::mutex> lockGuard(m_WorkingMemMutex);
         AllocateWorkingMemory();
 
         for (auto& input : m_InputQueue)
diff --git a/src/armnn/LoadedNetwork.hpp b/src/armnn/LoadedNetwork.hpp
index 03a741f..9c0fe0b 100644
--- a/src/armnn/LoadedNetwork.hpp
+++ b/src/armnn/LoadedNetwork.hpp
@@ -47,10 +47,11 @@
     // the shared_ptr's reference counter
     const std::shared_ptr<Profiler>& GetProfiler() const { return m_Profiler; }
 
-    void AllocateWorkingMemory();
     void FreeWorkingMemory();
 
 private:
+    void AllocateWorkingMemory();
+
     LoadedNetwork(std::unique_ptr<OptimizedNetwork> net);
 
     void EnqueueInput(const BindableLayer& layer, ITensorHandle* tensorHandle, const TensorInfo& tensorInfo);
@@ -77,9 +78,7 @@
     WorkloadQueue m_OutputQueue;
     std::shared_ptr<Profiler> m_Profiler;
 
-    using UniqueMutexLock = std::unique_lock<std::mutex>;
     mutable std::mutex m_WorkingMemMutex;
-    UniqueMutexLock m_WorkingMemLock;
 
     bool m_IsWorkingMemAllocated=false;
 };