summaryrefslogtreecommitdiffstatshomepage
path: root/extmod/uasyncio/core.py
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2020-03-12 16:46:20 +1100
committerDamien George <damien.p.george@gmail.com>2020-03-26 01:25:45 +1100
commitbc009fdd62f913e36443f8267ffb6133f537fff3 (patch)
tree977959e2e1f54abaf233924188e8fcc5e61c8ab8 /extmod/uasyncio/core.py
parent081d06766223b326b6d7eeceae817b7a3a3f57b0 (diff)
downloadmicropython-bc009fdd62f913e36443f8267ffb6133f537fff3.tar.gz
micropython-bc009fdd62f913e36443f8267ffb6133f537fff3.zip
extmod/uasyncio: Add optional implementation of core uasyncio in C.
Implements Task and TaskQueue classes in C, using a pairing-heap data structure. Using this reduces RAM use of each Task, and improves overall performance of the uasyncio scheduler.
Diffstat (limited to 'extmod/uasyncio/core.py')
-rw-r--r--extmod/uasyncio/core.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/extmod/uasyncio/core.py b/extmod/uasyncio/core.py
index 049e2537f8..5d7191d7fd 100644
--- a/extmod/uasyncio/core.py
+++ b/extmod/uasyncio/core.py
@@ -4,8 +4,11 @@
from time import ticks_ms as ticks, ticks_diff, ticks_add
import sys, select
-# Import TaskQueue and Task
-from .task import TaskQueue, Task
+# Import TaskQueue and Task, preferring built-in C code over Python code
+try:
+ from _uasyncio import TaskQueue, Task
+except:
+ from .task import TaskQueue, Task
################################################################################