aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/AsyncExecutionCallback.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/armnn/AsyncExecutionCallback.cpp')
-rw-r--r--src/armnn/AsyncExecutionCallback.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/armnn/AsyncExecutionCallback.cpp b/src/armnn/AsyncExecutionCallback.cpp
index 2973e2d891..5b87927af2 100644
--- a/src/armnn/AsyncExecutionCallback.cpp
+++ b/src/armnn/AsyncExecutionCallback.cpp
@@ -14,14 +14,18 @@ namespace experimental
void AsyncExecutionCallback::Notify(armnn::Status status, InferenceTimingPair timeTaken)
{
{
+#if !defined(ARMNN_DISABLE_THREADS)
std::lock_guard<std::mutex> hold(m_Mutex);
+#endif
// store results and mark as notified
m_Status = status;
m_StartTime = timeTaken.first;
m_EndTime = timeTaken.second;
m_NotificationQueue.push(m_InferenceId);
}
+#if !defined(ARMNN_DISABLE_THREADS)
m_Condition.notify_all();
+#endif
}
armnn::Status AsyncExecutionCallback::GetStatus() const
@@ -41,7 +45,12 @@ HighResolutionClock AsyncExecutionCallback::GetEndTime() const
std::shared_ptr<AsyncExecutionCallback> AsyncCallbackManager::GetNewCallback()
{
- auto cb = std::make_unique<AsyncExecutionCallback>(m_NotificationQueue, m_Mutex, m_Condition);
+ auto cb = std::make_unique<AsyncExecutionCallback>(m_NotificationQueue
+#if !defined(ARMNN_DISABLE_THREADS)
+ , m_Mutex
+ , m_Condition
+#endif
+ );
InferenceId id = cb->GetInferenceId();
m_Callbacks.insert({id, std::move(cb)});
@@ -50,10 +59,11 @@ std::shared_ptr<AsyncExecutionCallback> AsyncCallbackManager::GetNewCallback()
std::shared_ptr<AsyncExecutionCallback> AsyncCallbackManager::GetNotifiedCallback()
{
+#if !defined(ARMNN_DISABLE_THREADS)
std::unique_lock<std::mutex> lock(m_Mutex);
m_Condition.wait(lock, [this] { return !m_NotificationQueue.empty(); });
-
+#endif
InferenceId id = m_NotificationQueue.front();
m_NotificationQueue.pop();
@@ -64,4 +74,4 @@ std::shared_ptr<AsyncExecutionCallback> AsyncCallbackManager::GetNotifiedCallbac
} // namespace experimental
-} // namespace armnn \ No newline at end of file
+} // namespace armnn