aboutsummaryrefslogtreecommitdiff
path: root/ArmnnPreparedModel_1_3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ArmnnPreparedModel_1_3.cpp')
-rw-r--r--ArmnnPreparedModel_1_3.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/ArmnnPreparedModel_1_3.cpp b/ArmnnPreparedModel_1_3.cpp
index 155f8b25..86c04948 100644
--- a/ArmnnPreparedModel_1_3.cpp
+++ b/ArmnnPreparedModel_1_3.cpp
@@ -234,6 +234,7 @@ Return <V1_3::ErrorStatus> ArmnnPreparedModel_1_3<HalVersion>::execute_1_3(
const V1_3::Request& request,
MeasureTiming measureTiming,
const V1_3::OptionalTimePoint&,
+ const V1_3::OptionalTimeoutDuration&,
const sp<V1_3::IExecutionCallback>& callback)
{
if (callback.get() == nullptr)
@@ -259,6 +260,7 @@ Return<void> ArmnnPreparedModel_1_3<HalVersion>::executeFenced(const V1_3::Reque
MeasureTiming,
const OptionalTimePoint&,
const OptionalTimeoutDuration&,
+ const OptionalTimeoutDuration&,
executeFenced_cb cb)
{
cb(ErrorStatus::DEVICE_UNAVAILABLE, hidl_handle(nullptr), nullptr);
@@ -449,10 +451,12 @@ Return<void> ArmnnPreparedModel_1_3<HalVersion>::executeSynchronously(const V1_0
}
template<typename HalVersion>
-Return<void> ArmnnPreparedModel_1_3<HalVersion>::executeSynchronously_1_3(const V1_3::Request& request,
- MeasureTiming measureTiming,
- const V1_3::OptionalTimePoint& deadline,
- executeSynchronously_1_3_cb cb)
+Return<void> ArmnnPreparedModel_1_3<HalVersion>::executeSynchronously_1_3(
+ const V1_3::Request& request,
+ MeasureTiming measureTiming,
+ const V1_3::OptionalTimePoint& deadline,
+ const V1_3::OptionalTimeoutDuration& loopTimeoutDuration,
+ executeSynchronously_1_3_cb cb)
{
ALOGV("ArmnnPreparedModel_1_3::executeSynchronously_1_3(): %s", GetModelSummary(m_Model).c_str());
m_RequestCount++;
@@ -470,6 +474,13 @@ Return<void> ArmnnPreparedModel_1_3<HalVersion>::executeSynchronously_1_3(const
return Void();
}
+ if (loopTimeoutDuration.getDiscriminator() != OptionalTimeoutDuration::hidl_discriminator::none)
+ {
+ ALOGE("ArmnnPreparedModel_1_3::executeSynchronously_1_3 invalid request model");
+ cb(V1_3::ErrorStatus::INVALID_ARGUMENT, {}, g_NoTiming);
+ return Void();
+ }
+
auto cbWrapper = [cb](V1_3::ErrorStatus errorStatus,
std::vector<OutputShape> outputShapes,
const Timing& timing,