IVGCVSW-1823 *Free working mem only when network changes

Change-Id: I62b34713f8ebd96b9d4369f25cc8ba474aad8bb4
diff --git a/src/armnn/Runtime.cpp b/src/armnn/Runtime.cpp
index 8a7023e..e84cbe0 100644
--- a/src/armnn/Runtime.cpp
+++ b/src/armnn/Runtime.cpp
@@ -195,11 +195,23 @@
     return GetLoadedNetworkPtr(networkId)->GetOutputTensorInfo(layerId);
 }
 
+
 Status Runtime::EnqueueWorkload(NetworkId networkId,
                                 const InputTensors& inputTensors,
                                 const OutputTensors& outputTensors)
 {
     LoadedNetwork* loadedNetwork = GetLoadedNetworkPtr(networkId);
+
+    static thread_local NetworkId lastId = networkId;
+    if (lastId != networkId)
+    {
+        LoadedNetworkFuncSafe(lastId, [](LoadedNetwork* network)
+            {
+                network->FreeWorkingMemory();
+            });
+    }
+    lastId=networkId;
+
     return loadedNetwork->EnqueueWorkload(inputTensors, outputTensors);
 }