From fd627ffaec8fd8801d980b4c91ee7c0607ab6aaf Mon Sep 17 00:00:00 2001 From: Jan Eilers Date: Thu, 25 Feb 2021 17:44:00 +0000 Subject: IVGCVSW-5687 Update Doxygen Docu * Update Doxygen Documentation for 21.02 release Signed-off-by: Jan Eilers Change-Id: I9ed2f9caab038836ea99d7b378d7899fe431a4e5 --- 21.02/_command_handler_8cpp_source.xhtml | 129 +++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 21.02/_command_handler_8cpp_source.xhtml (limited to '21.02/_command_handler_8cpp_source.xhtml') diff --git a/21.02/_command_handler_8cpp_source.xhtml b/21.02/_command_handler_8cpp_source.xhtml new file mode 100644 index 0000000000..578defccd4 --- /dev/null +++ b/21.02/_command_handler_8cpp_source.xhtml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + +ArmNN: src/profiling/CommandHandler.cpp Source File + + + + + + + + + + + + + + + + +
+
+ + + + ArmNN + + + +
+
+  21.02 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
CommandHandler.cpp
+
+
+Go to the documentation of this file.
1 //
2 // Copyright © 2019 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include "CommandHandler.hpp"
7 #include "ProfilingService.hpp"
8 
9 #include <armnn/Logging.hpp>
10 
11 namespace armnn
12 {
13 
14 namespace profiling
15 {
16 
17 void CommandHandler::Start(IProfilingConnection& profilingConnection)
18 {
19  if (IsRunning())
20  {
21  return;
22  }
23 
24  if (m_CommandThread.joinable())
25  {
26  m_CommandThread.join();
27  }
28 
29  m_IsRunning.store(true);
30  m_KeepRunning.store(true);
31  m_CommandThread = std::thread(&CommandHandler::HandleCommands, this, std::ref(profilingConnection));
32 }
33 
35 {
36  m_KeepRunning.store(false);
37 
38  if (m_CommandThread.joinable())
39  {
40  m_CommandThread.join();
41  }
42 }
43 
44 void CommandHandler::HandleCommands(IProfilingConnection& profilingConnection)
45 {
46  do
47  {
48  try
49  {
50  arm::pipe::Packet packet = profilingConnection.ReadPacket(m_Timeout.load());
51 
52  if (packet.IsEmpty())
53  {
54  // Nothing to do, continue
55  continue;
56  }
57 
58  arm::pipe::Version version = m_PacketVersionResolver.ResolvePacketVersion(packet.GetPacketFamily(),
59  packet.GetPacketId());
60 
61  arm::pipe::CommandHandlerFunctor* commandHandlerFunctor =
62  m_CommandHandlerRegistry.GetFunctor(packet.GetPacketFamily(),
63  packet.GetPacketId(),
64  version.GetEncodedValue());
65  ARMNN_ASSERT(commandHandlerFunctor);
66  commandHandlerFunctor->operator()(packet);
67  }
68  catch (const armnn::TimeoutException&)
69  {
70  if (m_StopAfterTimeout.load())
71  {
72  m_KeepRunning.store(false);
73  }
74  }
75  catch (const arm::pipe::ProfilingException& e)
76  {
77  // Log the error and continue
78  ARMNN_LOG(warning) << "An error has occurred when handling a command: " << e.what();
79  // Did we get here because the socket failed?
80  if ( !profilingConnection.IsOpen() )
81  {
82  // We're going to stop processing commands.
83  // This will leave the thread idle. There is no mechanism to restart the profiling service when the
84  // connection is lost.
85  m_KeepRunning.store(false);
86  }
87  }
88  catch (const Exception& e)
89  {
90  // Log the error and continue
91  ARMNN_LOG(warning) << "An error has occurred when handling a command: " << e.what();
92  // Did we get here because the socket failed?
93  if ( !profilingConnection.IsOpen() )
94  {
95  // We're going to stop processing commands.
96  // This will leave the thread idle. There is no mechanism to restart the profiling service when the
97  // connection is lost.
98  m_KeepRunning.store(false);
99  }
100  }
101  }
102  while (m_KeepRunning.load());
103 
104  m_IsRunning.store(false);
105 }
106 
107 } // namespace profiling
108 
109 } // namespace armnn
void Start(IProfilingConnection &profilingConnection)
+
virtual arm::pipe::Packet ReadPacket(uint32_t timeout)=0
+
virtual const char * what() const noexcept override
Definition: Exceptions.cpp:32
+
#define ARMNN_LOG(severity)
Definition: Logging.hpp:202
+
Copyright (c) 2021 ARM Limited and Contributors.
+ + + +
#define ARMNN_ASSERT(COND)
Definition: Assert.hpp:14
+ + + + +
Base class for all ArmNN exceptions so that users can filter to just those.
Definition: Exceptions.hpp:46
+ + +
+
+ + + + -- cgit v1.2.1