diff options
author | Damien George <damien@micropython.org> | 2025-07-13 22:49:15 +1000 |
---|---|---|
committer | Damien George <damien@micropython.org> | 2025-07-23 11:37:00 +1000 |
commit | b070765427283fd994f217b8c7601ef9b1f9a37a (patch) | |
tree | b0977907d1a1267348e75da512f8c3b68a476f49 /tests/thread/mutate_instance.py | |
parent | b15065b95e24a939e09289ee18ce84579605b929 (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_instance.py')
-rw-r--r-- | tests/thread/mutate_instance.py | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/tests/thread/mutate_instance.py b/tests/thread/mutate_instance.py index 306ad91c9..63f7fb1e2 100644 --- a/tests/thread/mutate_instance.py +++ b/tests/thread/mutate_instance.py @@ -2,6 +2,7 @@ # # MIT license; Copyright (c) 2016 Damien P. George on behalf of Pycom Ltd +import time import _thread @@ -40,7 +41,7 @@ for i in range(n_thread): # busy wait for threads to finish while n_finished < n_thread: - pass + time.sleep(0) # check user instance has correct contents print(user.a, user.b, user.c) |