summaryrefslogtreecommitdiff
path: root/tests/thread/mutate_set.py
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2025-07-13 22:49:15 +1000
committerDamien George <damien@micropython.org>2025-07-23 11:37:00 +1000
commitb070765427283fd994f217b8c7601ef9b1f9a37a (patch)
treeb0977907d1a1267348e75da512f8c3b68a476f49 /tests/thread/mutate_set.py
parentb15065b95e24a939e09289ee18ce84579605b929 (diff)
tests/thread: Allow thread tests to pass with the native emitter.
The native emitter will not release/bounce the GIL when running code, so if it runs tight loops then no other threads get a chance to run (if the GIL is enabled). So for the thread tests, explicitly include a call to `time.sleep(0)` (or equivalent) to bounce the GIL and give other threads a chance to run. For some tests (eg `thread_coop.py`) the whole point of the test is to test that the GIL is correctly bounced. So for those cases force the use of the bytecode emitter for the busy functions. Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'tests/thread/mutate_set.py')
-rw-r--r--tests/thread/mutate_set.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/tests/thread/mutate_set.py b/tests/thread/mutate_set.py
index 2d9a3e0ce..7dcefa1d1 100644
--- a/tests/thread/mutate_set.py
+++ b/tests/thread/mutate_set.py
@@ -2,6 +2,7 @@
#
# MIT license; Copyright (c) 2016 Damien P. George on behalf of Pycom Ltd
+import time
import _thread
# the shared set
@@ -33,7 +34,7 @@ for i in range(n_thread):
# busy wait for threads to finish
while n_finished < n_thread:
- pass
+ time.sleep(0)
# check set has correct contents
print(sorted(se))