summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDavid Lechner <david@pybricks.com>2023-08-03 15:20:30 -0500
committerDamien George <damien@micropython.org>2023-09-03 18:49:18 +1000
commitffb43b2dd37f10f48612d369b5cad9731c2a0597 (patch)
treececc29542135b957063038985bdb466e3b05ddae /tests
parentc0d4c604e6a140c0f2967e1b43fd94d0b029c73f (diff)
py/modthread: Return thread id from start_new_thread().
In CPython, `_thread.start_new_thread()` returns an ID that is the same ID that is returned by `_thread.get_ident()`. The current MicroPython implementation of `_thread.start_new_thread()` always returns `None`. This modifies the required functions to return a value. The native thread id is returned since this can be used for interop with other functions, for example, `pthread_kill()` on *nix. `_thread.get_ident()` is also modified to return the native thread id so that the values match and avoids the need for a separate `native_id` attribute. Fixes issue #12153. Signed-off-by: David Lechner <david@pybricks.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/thread/thread_ident1.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/tests/thread/thread_ident1.py b/tests/thread/thread_ident1.py
index 390193acc..8e106cd31 100644
--- a/tests/thread/thread_ident1.py
+++ b/tests/thread/thread_ident1.py
@@ -5,7 +5,11 @@
import _thread
+tid = None
+
+
def thread_entry():
+ global tid
tid = _thread.get_ident()
print("thread", type(tid) == int, tid != 0, tid != tid_main)
global finished
@@ -16,8 +20,9 @@ tid_main = _thread.get_ident()
print("main", type(tid_main) == int, tid_main != 0)
finished = False
-_thread.start_new_thread(thread_entry, ())
+new_tid = _thread.start_new_thread(thread_entry, ())
while not finished:
pass
-print("done")
+
+print("done", type(new_tid) == int, new_tid == tid)