diff options
| author | Paul Sokolovsky | 2016-10-29 13:42:36 +0300 |
|---|---|---|
| committer | Paul Sokolovsky | 2016-10-29 13:42:36 +0300 |
| commit | 6a87084019e3e78eda0a21a3c80d600d0bd21991 (patch) | |
| tree | 221b5e30bb18586af7f6faee4a6581f7663b0bf0 /extmod/utime_mphal.c | |
| parent | 99ed0f25cb1dded94d0774ee3bdb3c08062df51a (diff) | |
extmod/utime_mphal: Add MP_THREAD_GIL_EXIT/ENTER warppers for sleep functions.
Ported from unix port.
Diffstat (limited to 'extmod/utime_mphal.c')
| -rw-r--r-- | extmod/utime_mphal.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/extmod/utime_mphal.c b/extmod/utime_mphal.c index 4a03bf94b..9bdf84188 100644 --- a/extmod/utime_mphal.c +++ b/extmod/utime_mphal.c @@ -33,14 +33,17 @@ #include "py/obj.h" #include "py/mphal.h" #include "py/smallint.h" +#include "py/runtime.h" #include "extmod/utime_mphal.h" STATIC mp_obj_t time_sleep(mp_obj_t seconds_o) { + MP_THREAD_GIL_EXIT(); #if MICROPY_PY_BUILTINS_FLOAT mp_hal_delay_ms(1000 * mp_obj_get_float(seconds_o)); #else mp_hal_delay_ms(1000 * mp_obj_get_int(seconds_o)); #endif + MP_THREAD_GIL_ENTER(); return mp_const_none; } MP_DEFINE_CONST_FUN_OBJ_1(mp_utime_sleep_obj, time_sleep); @@ -48,7 +51,9 @@ MP_DEFINE_CONST_FUN_OBJ_1(mp_utime_sleep_obj, time_sleep); STATIC mp_obj_t time_sleep_ms(mp_obj_t arg) { mp_int_t ms = mp_obj_get_int(arg); if (ms > 0) { + MP_THREAD_GIL_EXIT(); mp_hal_delay_ms(ms); + MP_THREAD_GIL_ENTER(); } return mp_const_none; } @@ -57,7 +62,9 @@ MP_DEFINE_CONST_FUN_OBJ_1(mp_utime_sleep_ms_obj, time_sleep_ms); STATIC mp_obj_t time_sleep_us(mp_obj_t arg) { mp_int_t us = mp_obj_get_int(arg); if (us > 0) { + MP_THREAD_GIL_EXIT(); mp_hal_delay_us(us); + MP_THREAD_GIL_ENTER(); } return mp_const_none; } |
