ArmNN
 21.05
AsyncExecutionCallback Class Referencefinal

#include <AsyncExecutionCallback.hpp>

Inheritance diagram for AsyncExecutionCallback:
IAsyncExecutionCallback

Public Member Functions

 AsyncExecutionCallback ()
 
 ~AsyncExecutionCallback ()
 
void Notify (armnn::Status status, InferenceTimingPair timeTaken)
 
void Wait () const
 
armnn::Status GetStatus () const
 
HighResolutionClock GetStartTime () const
 
HighResolutionClock GetEndTime () const
 
- Public Member Functions inherited from IAsyncExecutionCallback
virtual ~IAsyncExecutionCallback ()
 

Detailed Description

Definition at line 21 of file AsyncExecutionCallback.hpp.

Constructor & Destructor Documentation

◆ AsyncExecutionCallback()

Definition at line 24 of file AsyncExecutionCallback.hpp.

25  {}

◆ ~AsyncExecutionCallback()

Member Function Documentation

◆ GetEndTime()

HighResolutionClock GetEndTime ( ) const
virtual

Implements IAsyncExecutionCallback.

Definition at line 49 of file AsyncExecutionCallback.cpp.

References AsyncExecutionCallback::Wait().

Referenced by AsyncExecutionCallback::~AsyncExecutionCallback().

50 {
51  Wait();
52  return m_EndTime;
53 }

◆ GetStartTime()

HighResolutionClock GetStartTime ( ) const
virtual

Implements IAsyncExecutionCallback.

Definition at line 43 of file AsyncExecutionCallback.cpp.

References AsyncExecutionCallback::Wait().

Referenced by AsyncExecutionCallback::~AsyncExecutionCallback().

44 {
45  Wait();
46  return m_StartTime;
47 }

◆ GetStatus()

armnn::Status GetStatus ( ) const
virtual

Implements IAsyncExecutionCallback.

Definition at line 37 of file AsyncExecutionCallback.cpp.

References AsyncExecutionCallback::Wait().

Referenced by AsyncExecutionCallback::~AsyncExecutionCallback().

38 {
39  Wait();
40  return m_Status;
41 }

◆ Notify()

void Notify ( armnn::Status  status,
InferenceTimingPair  timeTaken 
)
virtual

Implements IAsyncExecutionCallback.

Definition at line 14 of file AsyncExecutionCallback.cpp.

Referenced by AsyncExecutionCallback::~AsyncExecutionCallback().

15 {
16  {
17  std::lock_guard<std::mutex> hold(m_Mutex);
18  if (m_Notified)
19  {
20  return;
21  }
22  // store results and mark as notified
23  m_Status = status;
24  m_StartTime = timeTaken.first;
25  m_EndTime = timeTaken.second;
26  m_Notified = true;
27  }
28  m_Condition.notify_all();
29 }

◆ Wait()

void Wait ( ) const
virtual

Implements IAsyncExecutionCallback.

Definition at line 31 of file AsyncExecutionCallback.cpp.

Referenced by AsyncExecutionCallback::GetEndTime(), AsyncExecutionCallback::GetStartTime(), AsyncExecutionCallback::GetStatus(), and AsyncExecutionCallback::~AsyncExecutionCallback().

32 {
33  std::unique_lock<std::mutex> lock(m_Mutex);
34  m_Condition.wait(lock, [this] { return m_Notified; });
35 }

The documentation for this class was generated from the following files: