IVGCVSW-6710 Add compile of BareMetalDeserializedGraph sample
Change-Id: Ice69c2a22f589f68d302f80500dfe4e514a796d2
Signed-off-by: Jim Flynn <jim.flynn@arm.com>
diff --git a/profiling/client/src/BufferManager.cpp b/profiling/client/src/BufferManager.cpp
index 42e3200..592d374 100644
--- a/profiling/client/src/BufferManager.cpp
+++ b/profiling/client/src/BufferManager.cpp
@@ -24,19 +24,25 @@
IPacketBufferPtr BufferManager::Reserve(unsigned int requestedSize, unsigned int& reservedSize)
{
reservedSize = 0;
+#if !defined(ARMNN_DISABLE_THREADS)
std::unique_lock<std::mutex> availableListLock(m_AvailableMutex, std::defer_lock);
+#endif
if (requestedSize > m_MaxBufferSize)
{
return nullptr;
}
+#if !defined(ARMNN_DISABLE_THREADS)
availableListLock.lock();
+#endif
if (m_AvailableList.empty())
{
if (m_CurrentNumberOfBuffers < m_MaxNumberOfBuffers)
{
// create a temporary overflow/surge buffer and hand it back
m_CurrentNumberOfBuffers++;
+#if !defined(ARMNN_DISABLE_THREADS)
availableListLock.unlock();
+#endif
IPacketBufferPtr buffer = std::make_unique<PacketBuffer>(m_MaxBufferSize);
reservedSize = requestedSize;
return buffer;
@@ -44,25 +50,34 @@
else
{
// we have totally busted the limit. call a halt to new memory allocations.
+#if !defined(ARMNN_DISABLE_THREADS)
availableListLock.unlock();
+#endif
return nullptr;
}
}
IPacketBufferPtr buffer = std::move(m_AvailableList.back());
m_AvailableList.pop_back();
+#if !defined(ARMNN_DISABLE_THREADS)
availableListLock.unlock();
+#endif
reservedSize = requestedSize;
return buffer;
}
void BufferManager::Commit(IPacketBufferPtr& packetBuffer, unsigned int size, bool notifyConsumer)
{
+#if !defined(ARMNN_DISABLE_THREADS)
std::unique_lock<std::mutex> readableListLock(m_ReadableMutex, std::defer_lock);
+#endif
packetBuffer->Commit(size);
+#if !defined(ARMNN_DISABLE_THREADS)
readableListLock.lock();
+#endif
m_ReadableList.push(std::move(packetBuffer));
+#if !defined(ARMNN_DISABLE_THREADS)
readableListLock.unlock();
-
+#endif
if (notifyConsumer)
{
FlushReadList();
@@ -82,9 +97,13 @@
void BufferManager::Release(IPacketBufferPtr& packetBuffer)
{
+#if !defined(ARMNN_DISABLE_THREADS)
std::unique_lock<std::mutex> availableListLock(m_AvailableMutex, std::defer_lock);
+#endif
packetBuffer->Release();
+#if !defined(ARMNN_DISABLE_THREADS)
availableListLock.lock();
+#endif
if (m_AvailableList.size() <= m_NumberOfBuffers)
{
m_AvailableList.push_back(std::move(packetBuffer));
@@ -98,14 +117,18 @@
--m_CurrentNumberOfBuffers;
}
}
+#if !defined(ARMNN_DISABLE_THREADS)
availableListLock.unlock();
+#endif
}
void BufferManager::Reset()
{
//This method should only be called once all threads have been joined
+#if !defined(ARMNN_DISABLE_THREADS)
std::lock_guard<std::mutex> readableListLock(m_ReadableMutex);
std::lock_guard<std::mutex> availableListLock(m_AvailableMutex);
+#endif
m_AvailableList.clear();
std::queue<IPacketBufferPtr>().swap(m_ReadableList);
@@ -115,12 +138,16 @@
IPacketBufferPtr BufferManager::GetReadableBuffer()
{
+#if !defined(ARMNN_DISABLE_THREADS)
std::unique_lock<std::mutex> readableListLock(m_ReadableMutex);
+#endif
if (!m_ReadableList.empty())
{
IPacketBufferPtr buffer = std::move(m_ReadableList.front());
m_ReadableList.pop();
+#if !defined(ARMNN_DISABLE_THREADS)
readableListLock.unlock();
+#endif
return buffer;
}
return nullptr;
@@ -128,9 +155,13 @@
void BufferManager::MarkRead(IPacketBufferPtr& packetBuffer)
{
+#if !defined(ARMNN_DISABLE_THREADS)
std::unique_lock<std::mutex> availableListLock(m_AvailableMutex, std::defer_lock);
+#endif
packetBuffer->MarkRead();
+#if !defined(ARMNN_DISABLE_THREADS)
availableListLock.lock();
+#endif
if (m_AvailableList.size() <= m_NumberOfBuffers)
{
m_AvailableList.push_back(std::move(packetBuffer));
@@ -144,7 +175,9 @@
--m_CurrentNumberOfBuffers;
}
}
+#if !defined(ARMNN_DISABLE_THREADS)
availableListLock.unlock();
+#endif
}
void BufferManager::SetConsumer(IConsumer* consumer)