diff options
author | Jim Flynn <jim.flynn@arm.com> | 2022-03-25 21:24:56 +0000 |
---|---|---|
committer | Jim Flynn <jim.flynn@arm.com> | 2022-04-11 14:24:34 +0100 |
commit | 870b96c643388ae88dd4245b9169f526d6a8d49e (patch) | |
tree | 44a675f1eecdbf0eff40dc4ee623e0a2f03b2f96 /src/armnn/AsyncExecutionCallback.cpp | |
parent | b99799bda8fe0fb0a755eebbe2d02dbb74507c9f (diff) | |
download | armnn-870b96c643388ae88dd4245b9169f526d6a8d49e.tar.gz |
IVGCVSW-6707 Enables a bare metal compile
Change-Id: Icc2f83c5f27f413758fee3e5c1445e9fc44f42c8
Signed-off-by: Jim Flynn <jim.flynn@arm.com>
Diffstat (limited to 'src/armnn/AsyncExecutionCallback.cpp')
-rw-r--r-- | src/armnn/AsyncExecutionCallback.cpp | 16 |
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 |