diff --git a/ports/stm32/pendsv.c b/ports/stm32/pendsv.c index a3d04a4ef9ef2fbc394c0cc444c21643f2ebdc56..ba383a7319674e3c36c5fde7aa283244eac784cd 100644 --- a/ports/stm32/pendsv.c +++ b/ports/stm32/pendsv.c @@ -79,8 +79,9 @@ void pendsv_schedule_dispatch(size_t slot, pendsv_dispatch_t f) { void pendsv_dispatch_handler(void) { for (size_t i = 0; i < PENDSV_DISPATCH_NUM_SLOTS; ++i) { if (pendsv_dispatch_table[i] != NULL) { + pendsv_dispatch_t f = pendsv_dispatch_table[i]; pendsv_dispatch_table[i] = NULL; - pendsv_dispatch_table[i](); + f(); } } }