summaryrefslogtreecommitdiff
path: root/py
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-12-22 00:29:32 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-12-22 00:29:32 +0300
commitd02f6a9956760425188f517f3708c76123e53d2a (patch)
tree91b60d0baa22fbd9ee1b39162289143b2d80f328 /py
parentef23399e32f03d251942b7a29c720a9cf72a1c26 (diff)
extmod/modutimeq: Refactor into optimized class.
import utimeq, utime # Max queue size, the queue allocated statically on creation q = utimeq.utimeq(10) q.push(utime.ticks_ms(), data1, data2) res = [0, 0, 0] # Items in res are filled up with results q.pop(res)
Diffstat (limited to 'py')
-rw-r--r--py/builtin.h1
-rw-r--r--py/mpconfig.h5
-rw-r--r--py/objmodule.c3
-rw-r--r--py/py.mk1
4 files changed, 10 insertions, 0 deletions
diff --git a/py/builtin.h b/py/builtin.h
index 893e47104..282eb1cc9 100644
--- a/py/builtin.h
+++ b/py/builtin.h
@@ -110,6 +110,7 @@ extern const mp_obj_module_t mp_module_ubinascii;
extern const mp_obj_module_t mp_module_urandom;
extern const mp_obj_module_t mp_module_uselect;
extern const mp_obj_module_t mp_module_ussl;
+extern const mp_obj_module_t mp_module_utimeq;
extern const mp_obj_module_t mp_module_machine;
extern const mp_obj_module_t mp_module_lwip;
extern const mp_obj_module_t mp_module_websocket;
diff --git a/py/mpconfig.h b/py/mpconfig.h
index 7a71ebd95..8cf4bbb77 100644
--- a/py/mpconfig.h
+++ b/py/mpconfig.h
@@ -945,6 +945,11 @@ typedef double mp_float_t;
#define MICROPY_PY_UHEAPQ (0)
#endif
+// Optimized heap queue for relative timestamps
+#ifndef MICROPY_PY_UTIMEQ
+#define MICROPY_PY_UTIMEQ (0)
+#endif
+
#ifndef MICROPY_PY_UHASHLIB
#define MICROPY_PY_UHASHLIB (0)
#endif
diff --git a/py/objmodule.c b/py/objmodule.c
index 6f7d35d42..1c79e1a18 100644
--- a/py/objmodule.c
+++ b/py/objmodule.c
@@ -189,6 +189,9 @@ STATIC const mp_rom_map_elem_t mp_builtin_module_table[] = {
#if MICROPY_PY_UHEAPQ
{ MP_ROM_QSTR(MP_QSTR_uheapq), MP_ROM_PTR(&mp_module_uheapq) },
#endif
+#if MICROPY_PY_UTIMEQ
+ { MP_ROM_QSTR(MP_QSTR_utimeq), MP_ROM_PTR(&mp_module_utimeq) },
+#endif
#if MICROPY_PY_UHASHLIB
{ MP_ROM_QSTR(MP_QSTR_uhashlib), MP_ROM_PTR(&mp_module_uhashlib) },
#endif
diff --git a/py/py.mk b/py/py.mk
index 79436aa9e..ec22fbe63 100644
--- a/py/py.mk
+++ b/py/py.mk
@@ -212,6 +212,7 @@ PY_O_BASENAME = \
../extmod/modure.o \
../extmod/moduzlib.o \
../extmod/moduheapq.o \
+ ../extmod/modutimeq.o \
../extmod/moduhashlib.o \
../extmod/modubinascii.o \
../extmod/virtpin.o \