From f88c435dd02fe5ed63fcf9dfb7bf7bdc8f766d64 Mon Sep 17 00:00:00 2001 From: Dustin Spicuzza Date: Wed, 23 Feb 2022 12:46:01 -0500 Subject: [PATCH] [hal] Add mechanism to cancel all periodic callbacks (#4049) --- hal/src/main/native/athena/mockdata/MockHooks.cpp | 2 ++ hal/src/main/native/include/hal/simulation/MockHooks.h | 2 ++ hal/src/main/native/sim/HAL.cpp | 5 +++++ 3 files changed, 9 insertions(+) diff --git a/hal/src/main/native/athena/mockdata/MockHooks.cpp b/hal/src/main/native/athena/mockdata/MockHooks.cpp index 0ea05d02e4..a6a680448e 100644 --- a/hal/src/main/native/athena/mockdata/MockHooks.cpp +++ b/hal/src/main/native/athena/mockdata/MockHooks.cpp @@ -48,4 +48,6 @@ int32_t HALSIM_RegisterSimPeriodicAfterCallback( void HALSIM_CancelSimPeriodicAfterCallback(int32_t uid) {} +void HALSIM_CancelAllSimPeriodicCallbacks(void) {} + } // extern "C" diff --git a/hal/src/main/native/include/hal/simulation/MockHooks.h b/hal/src/main/native/include/hal/simulation/MockHooks.h index 330f72e727..fe50656be3 100644 --- a/hal/src/main/native/include/hal/simulation/MockHooks.h +++ b/hal/src/main/native/include/hal/simulation/MockHooks.h @@ -36,4 +36,6 @@ int32_t HALSIM_RegisterSimPeriodicAfterCallback( HALSIM_SimPeriodicCallback callback, void* param); void HALSIM_CancelSimPeriodicAfterCallback(int32_t uid); +void HALSIM_CancelAllSimPeriodicCallbacks(void); + } // extern "C" diff --git a/hal/src/main/native/sim/HAL.cpp b/hal/src/main/native/sim/HAL.cpp index 8d911df7fe..9856f0110d 100644 --- a/hal/src/main/native/sim/HAL.cpp +++ b/hal/src/main/native/sim/HAL.cpp @@ -409,6 +409,11 @@ void HALSIM_CancelSimPeriodicAfterCallback(int32_t uid) { gSimPeriodicAfter.Cancel(uid); } +void HALSIM_CancelAllSimPeriodicCallbacks(void) { + gSimPeriodicBefore.Reset(); + gSimPeriodicAfter.Reset(); +} + int64_t HAL_Report(int32_t resource, int32_t instanceNumber, int32_t context, const char* feature) { return 0; // Do nothing for now