summaryrefslogtreecommitdiffstatshomepage
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/thread/thread_heap_lock.py26
-rw-r--r--tests/thread/thread_heap_lock.py.exp1
2 files changed, 27 insertions, 0 deletions
diff --git a/tests/thread/thread_heap_lock.py b/tests/thread/thread_heap_lock.py
new file mode 100644
index 0000000000..2837e0f366
--- /dev/null
+++ b/tests/thread/thread_heap_lock.py
@@ -0,0 +1,26 @@
+# test interaction of micropython.heap_lock with threads
+
+import _thread, micropython
+
+lock1 = _thread.allocate_lock()
+lock2 = _thread.allocate_lock()
+
+
+def thread_entry():
+ lock1.acquire()
+ print([1, 2, 3])
+ lock2.release()
+
+
+lock1.acquire()
+lock2.acquire()
+
+_thread.start_new_thread(thread_entry, ())
+
+micropython.heap_lock()
+lock1.release()
+lock2.acquire()
+micropython.heap_unlock()
+
+lock1.release()
+lock2.release()
diff --git a/tests/thread/thread_heap_lock.py.exp b/tests/thread/thread_heap_lock.py.exp
new file mode 100644
index 0000000000..b5d8bb58d9
--- /dev/null
+++ b/tests/thread/thread_heap_lock.py.exp
@@ -0,0 +1 @@
+[1, 2, 3]