12 #include <condition_variable> 16 #include <unordered_map> 21 namespace experimental
33 std::condition_variable& condition)
34 : m_NotificationQueue(notificationQueue)
36 , m_Condition(condition)
37 , m_InferenceId(++nextID)
55 std::queue<InferenceId>& m_NotificationQueue;
57 std::condition_variable& m_Condition;
72 std::shared_ptr<AsyncExecutionCallback> GetNewCallback();
73 std::shared_ptr<AsyncExecutionCallback> GetNotifiedCallback();
77 std::condition_variable m_Condition;
78 std::unordered_map<InferenceId, std::shared_ptr<AsyncExecutionCallback>> m_Callbacks;
79 std::queue<InferenceId> m_NotificationQueue;
~AsyncExecutionCallback()
std::chrono::high_resolution_clock::time_point HighResolutionClock
Define a timer and associated inference ID for recording execution times.
void Notify(armnn::Status status, InferenceTimingPair timeTaken)
HighResolutionClock GetStartTime() const
Copyright (c) 2021 ARM Limited and Contributors.
AsyncExecutionCallback(std::queue< InferenceId > ¬ificationQueue, std::mutex &mutex, std::condition_variable &condition)
InferenceId GetInferenceId()
HighResolutionClock GetEndTime() const
armnn::Status GetStatus() const
std::pair< HighResolutionClock, HighResolutionClock > InferenceTimingPair