aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/Runtime.hpp
diff options
context:
space:
mode:
authorDerek Lamberti <derek.lamberti@arm.com>2018-10-02 15:52:46 +0100
committerMatthew Bentham <matthew.bentham@arm.com>2018-10-22 16:57:54 +0100
commit03614f697396558a652f22c6efac2a3cd1f71460 (patch)
tree07955162c6031fec3817de65949201b38360bd61 /src/armnn/Runtime.hpp
parentc26ba759fe67bd14829a84b5abac80f51ca61946 (diff)
downloadarmnn-03614f697396558a652f22c6efac2a3cd1f71460.tar.gz
IVGCVSW-1823 *Free working mem only when network changes
Change-Id: I62b34713f8ebd96b9d4369f25cc8ba474aad8bb4
Diffstat (limited to 'src/armnn/Runtime.hpp')
-rw-r--r--src/armnn/Runtime.hpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/armnn/Runtime.hpp b/src/armnn/Runtime.hpp
index 12211f4e04..29bb6808d8 100644
--- a/src/armnn/Runtime.hpp
+++ b/src/armnn/Runtime.hpp
@@ -73,6 +73,17 @@ private:
LoadedNetwork* GetLoadedNetworkPtr(NetworkId networkId) const;
+ template<typename Func>
+ void LoadedNetworkFuncSafe(NetworkId networkId, Func f)
+ {
+ std::lock_guard<std::mutex> lockGuard(m_Mutex);
+ auto iter = m_LoadedNetworks.find(networkId);
+ if (iter != m_LoadedNetworks.end())
+ {
+ f(iter->second.get());
+ }
+ }
+
mutable std::mutex m_Mutex;
std::unordered_map<NetworkId, std::unique_ptr<LoadedNetwork>> m_LoadedNetworks;