From aefa7ebf0ff0f73feee7ab24f4cdcb2014d83ee5 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Thu, 23 Mar 2017 15:48:39 +0200 Subject: bpo-6532: Make the thread id an unsigned integer. (#781) * bpo-6532: Make the thread id an unsigned integer. From C API side the type of results of PyThread_start_new_thread() and PyThread_get_thread_ident(), the id parameter of PyThreadState_SetAsyncExc(), and the thread_id field of PyThreadState changed from "long" to "unsigned long". * Restore a check in thread_get_ident(). --- Lib/threading.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Lib/threading.py') diff --git a/Lib/threading.py b/Lib/threading.py index 95978d310a..929a4b0066 100644 --- a/Lib/threading.py +++ b/Lib/threading.py @@ -993,14 +993,14 @@ class Thread: # # Must take care to not raise an exception if _dummy_thread is being # used (and thus this module is being used as an instance of - # dummy_threading). _dummy_thread.get_ident() always returns -1 since + # dummy_threading). _dummy_thread.get_ident() always returns 1 since # there is only one thread if _dummy_thread is being used. Thus # len(_active) is always <= 1 here, and any Thread instance created # overwrites the (if any) thread currently registered in _active. # # An instance of _MainThread is always created by 'threading'. This # gets overwritten the instant an instance of Thread is created; both - # threads return -1 from _dummy_thread.get_ident() and thus have the + # threads return 1 from _dummy_thread.get_ident() and thus have the # same key in the dict. So when the _MainThread instance created by # 'threading' tries to clean itself up when atexit calls this method # it gets a KeyError if another Thread instance was created. -- cgit v1.2.1