rp2/modmachine: Use atomic section macros.
To avoid undefined references to mp_thread_begin_atomic_section/mp_thread_end_atomic_section, replace them with the MICROPY_BEGIN_ATOMIC_SECTION / MICROPY_END_ATOMIC_SECTION macros. That way, the support for building with MICROPY_PY_THREAD disabled introduced by commitefa54c27b9("rp2/mpconfigport: Allow MICROPY_PY_THREAD to be disabled by a board.") is useable again. Fixes commit19844b4983("rp2/modmachine: Prevent lock-up when lightsleep() called within thread."). Signed-off-by: Matthias Blankertz <matthias@blankertz.org>
This commit is contained in:
@@ -127,10 +127,10 @@ static void mp_machine_lightsleep(size_t n_args, const mp_obj_t *args) {
|
|||||||
|
|
||||||
const uint32_t xosc_hz = XOSC_MHZ * 1000000;
|
const uint32_t xosc_hz = XOSC_MHZ * 1000000;
|
||||||
|
|
||||||
uint32_t my_interrupts = mp_thread_begin_atomic_section();
|
uint32_t my_interrupts = MICROPY_BEGIN_ATOMIC_SECTION();
|
||||||
#if MICROPY_PY_NETWORK_CYW43
|
#if MICROPY_PY_NETWORK_CYW43
|
||||||
if (cyw43_has_pending && cyw43_poll != NULL) {
|
if (cyw43_has_pending && cyw43_poll != NULL) {
|
||||||
mp_thread_end_atomic_section(my_interrupts);
|
MICROPY_END_ATOMIC_SECTION(my_interrupts);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -196,7 +196,7 @@ static void mp_machine_lightsleep(size_t n_args, const mp_obj_t *args) {
|
|||||||
|
|
||||||
// Bring back all clocks.
|
// Bring back all clocks.
|
||||||
clocks_init();
|
clocks_init();
|
||||||
mp_thread_end_atomic_section(my_interrupts);
|
MICROPY_END_ATOMIC_SECTION(my_interrupts);
|
||||||
}
|
}
|
||||||
|
|
||||||
NORETURN static void mp_machine_deepsleep(size_t n_args, const mp_obj_t *args) {
|
NORETURN static void mp_machine_deepsleep(size_t n_args, const mp_obj_t *args) {
|
||||||
|
|||||||
Reference in New Issue
Block a user